Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
q23::expected< T, E > Class Template Reference

#include <qexpected_p.h>

Inheritance diagram for q23::expected< T, E >:
Collaboration diagram for q23::expected< T, E >:

Public Types

typedef T value_type
typedef E error_type
typedef unexpected< Eunexpected_type

Public Member Functions

template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR auto and_then (F &&f) &-> decltype(and_then_impl(std::declval< expected & >(), std::forward< F >(f)))
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR auto and_then (F &&f) &&-> decltype(and_then_impl(std::declval< expected && >(), std::forward< F >(f)))
template<class F>
constexpr auto and_then (F &&f) const &-> decltype(and_then_impl(std::declval< expected const & >(), std::forward< F >(f)))
template<class F>
constexpr auto and_then (F &&f) const &&-> decltype(and_then_impl(std::declval< expected const && >(), std::forward< F >(f)))
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected & >(), std::declval< F && >())) map (F &&f) &
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected >(), std::declval< F && >())) map (F &&f) &&
template<class F>
constexpr decltype(expected_map_impl(std::declval< const expected & >(), std::declval< F && >())) map (F &&f) const &
template<class F>
constexpr decltype(expected_map_impl(std::declval< const expected && >(), std::declval< F && >())) map (F &&f) const &&
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected & >(), std::declval< F && >())) transform (F &&f) &
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected >(), std::declval< F && >())) transform (F &&f) &&
template<class F>
constexpr decltype(expected_map_impl(std::declval< const expected & >(), std::declval< F && >())) transform (F &&f) const &
template<class F>
constexpr decltype(expected_map_impl(std::declval< const expected && >(), std::declval< F && >())) transform (F &&f) const &&
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected & >(), std::declval< F && >())) map_error (F &&f) &
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected && >(), std::declval< F && >())) map_error (F &&f) &&
template<class F>
constexpr decltype(map_error_impl(std::declval< const expected & >(), std::declval< F && >())) map_error (F &&f) const &
template<class F>
constexpr decltype(map_error_impl(std::declval< const expected && >(), std::declval< F && >())) map_error (F &&f) const &&
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected & >(), std::declval< F && >())) transform_error (F &&f) &
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected && >(), std::declval< F && >())) transform_error (F &&f) &&
template<class F>
constexpr decltype(map_error_impl(std::declval< const expected & >(), std::declval< F && >())) transform_error (F &&f) const &
template<class F>
constexpr decltype(map_error_impl(std::declval< const expected && >(), std::declval< F && >())) transform_error (F &&f) const &&
template<class F>
expected Q23_TL_EXPECTED_11_CONSTEXPR or_else (F &&f) &
template<class F>
expected Q23_TL_EXPECTED_11_CONSTEXPR or_else (F &&f) &&
template<class F>
expected constexpr or_else (F &&f) const &
template<class F>
expected constexpr or_else (F &&f) const &&
constexpr expected ()=default
constexpr expected (const expected &rhs)=default
constexpr expected (expected &&rhs)=default
expectedoperator= (const expected &rhs)=default
expectedoperator= (expected &&rhs)=default
template<class... Args, detail::enable_if_t< std::is_constructible< T, Args &&... >::value > * = nullptr>
constexpr expected (in_place_t, Args &&...args)
template<class U, class... Args, detail::enable_if_t< std::is_constructible< T, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
constexpr expected (in_place_t, std::initializer_list< U > il, Args &&...args)
template<class G = E, detail::enable_if_t< std::is_constructible< E, const G & >::value > * = nullptr, detail::enable_if_t<!std::is_convertible< const G &, E >::value > * = nullptr>
constexpr expected (const unexpected< G > &e)
template<class G = E, detail::enable_if_t< std::is_constructible< E, const G & >::value > * = nullptr, detail::enable_if_t< std::is_convertible< const G &, E >::value > * = nullptr>
constexpr expected (unexpected< G > const &e)
template<class G = E, detail::enable_if_t< std::is_constructible< E, G && >::value > * = nullptr, detail::enable_if_t<!std::is_convertible< G &&, E >::value > * = nullptr>
constexpr expected (unexpected< G > &&e) noexcept(std::is_nothrow_constructible< E, G && >::value)
template<class G = E, detail::enable_if_t< std::is_constructible< E, G && >::value > * = nullptr, detail::enable_if_t< std::is_convertible< G &&, E >::value > * = nullptr>
constexpr expected (unexpected< G > &&e) noexcept(std::is_nothrow_constructible< E, G && >::value)
template<class... Args, detail::enable_if_t< std::is_constructible< E, Args &&... >::value > * = nullptr>
constexpr expected (unexpect_t, Args &&...args)
template<class U, class... Args, detail::enable_if_t< std::is_constructible< E, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
constexpr expected (unexpect_t, std::initializer_list< U > il, Args &&...args)
template<class U, class G, detail::enable_if_t<!(std::is_convertible< U const &, T >::value &&std::is_convertible< G const &, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, const U &, const G & > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR expected (const expected< U, G > &rhs)
template<class U, class G, detail::enable_if_t<(std::is_convertible< U const &, T >::value &&std::is_convertible< G const &, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, const U &, const G & > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR expected (const expected< U, G > &rhs)
template<class U, class G, detail::enable_if_t<!(std::is_convertible< U &&, T >::value &&std::is_convertible< G &&, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, U &&, G && > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR expected (expected< U, G > &&rhs)
template<class U, class G, detail::enable_if_t<(std::is_convertible< U &&, T >::value &&std::is_convertible< G &&, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, U &&, G && > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR expected (expected< U, G > &&rhs)
template<class U = T, detail::enable_if_t<!std::is_convertible< U &&, T >::value > * = nullptr, detail::expected_enable_forward_value< T, E, U > * = nullptr>
Q23_TL_EXPECTED_MSVC2015_CONSTEXPR expected (U &&v)
template<class U = T, detail::enable_if_t< std::is_convertible< U &&, T >::value > * = nullptr, detail::expected_enable_forward_value< T, E, U > * = nullptr>
Q23_TL_EXPECTED_MSVC2015_CONSTEXPR expected (U &&v)
template<class U = T, class G = T, detail::enable_if_t< std::is_nothrow_constructible< T, U && >::value > * = nullptr, detail::enable_if_t<!std::is_void< G >::value > * = nullptr, detail::enable_if_t<(!std::is_same< expected< T, E >, detail::decay_t< U > >::value &&!detail::conjunction< std::is_scalar< T >, std::is_same< T, detail::decay_t< U > > >::value &&std::is_constructible< T, U >::value &&std::is_assignable< G &, U >::value &&std::is_nothrow_move_constructible< E >::value)> * = nullptr>
expectedoperator= (U &&v)
template<class U = T, class G = T, detail::enable_if_t<!std::is_nothrow_constructible< T, U && >::value > * = nullptr, detail::enable_if_t<!std::is_void< U >::value > * = nullptr, detail::enable_if_t<(!std::is_same< expected< T, E >, detail::decay_t< U > >::value &&!detail::conjunction< std::is_scalar< T >, std::is_same< T, detail::decay_t< U > > >::value &&std::is_constructible< T, U >::value &&std::is_assignable< G &, U >::value &&std::is_nothrow_move_constructible< E >::value)> * = nullptr>
expectedoperator= (U &&v)
template<class G = E, detail::enable_if_t< std::is_nothrow_copy_constructible< G >::value &&std::is_assignable< G &, G >::value > * = nullptr>
expectedoperator= (const unexpected< G > &rhs)
template<class G = E, detail::enable_if_t< std::is_nothrow_move_constructible< G >::value &&std::is_move_assignable< G >::value > * = nullptr>
expectedoperator= (unexpected< G > &&rhs) noexcept
template<class... Args, detail::enable_if_t< std::is_nothrow_constructible< T, Args &&... >::value > * = nullptr>
void emplace (Args &&...args)
template<class... Args, detail::enable_if_t<!std::is_nothrow_constructible< T, Args &&... >::value > * = nullptr>
void emplace (Args &&...args)
template<class U, class... Args, detail::enable_if_t< std::is_nothrow_constructible< T, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
void emplace (std::initializer_list< U > il, Args &&...args)
template<class U, class... Args, detail::enable_if_t<!std::is_nothrow_constructible< T, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
void emplace (std::initializer_list< U > il, Args &&...args)
template<class OT = T, class OE = E>
detail::enable_if_t< detail::is_swappable< OT >::value &&detail::is_swappable< OE >::value &&(std::is_nothrow_move_constructible< OT >::value||std::is_nothrow_move_constructible< OE >::value)> swap (expected &rhs) noexcept(std::is_nothrow_move_constructible< T >::value &&detail::is_nothrow_swappable< T >::value &&std::is_nothrow_move_constructible< E >::value &&detail::is_nothrow_swappable< E >::value)
constexpr const T * operator-> () const
Q23_TL_EXPECTED_11_CONSTEXPR T * operator-> ()
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
constexpr const U & operator* () const &
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U & operator* () &
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
constexpr const U && operator* () const &&
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U && operator* () &&
constexpr bool has_value () const noexcept
constexpr operator bool () const noexcept
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR const U & value () const &
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U & value () &
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR const U && value () const &&
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U && value () &&
constexpr const Eerror () const &
Q23_TL_EXPECTED_11_CONSTEXPR Eerror () &
constexpr const E && error () const &&
Q23_TL_EXPECTED_11_CONSTEXPR E && error () &&
template<class U>
constexpr T value_or (U &&v) const &
template<class U>
Q23_TL_EXPECTED_11_CONSTEXPRvalue_or (U &&v) &&

Detailed Description

template<class T, class E>
class q23::expected< T, E >

An expected<T, E> object is an object that contains the storage for another object and manages the lifetime of this contained object T. Alternatively it could contain the storage for another unexpected object E. The contained object may not be initialized after the expected object has been initialized, and may not be destroyed before the expected object has been destroyed. The initialization state of the contained object is tracked by the expected object.

Definition at line 1311 of file qexpected_p.h.

Member Typedef Documentation

◆ error_type

template<class T, class E>
typedef E q23::expected< T, E >::error_type

Definition at line 1351 of file qexpected_p.h.

◆ unexpected_type

template<class T, class E>
typedef unexpected<E> q23::expected< T, E >::unexpected_type

Definition at line 1352 of file qexpected_p.h.

◆ value_type

template<class T, class E>
typedef T q23::expected< T, E >::value_type

Definition at line 1350 of file qexpected_p.h.

Constructor & Destructor Documentation

◆ expected() [1/17]

template<class T, class E>
q23::expected< T, E >::expected ( )
constexprdefault

◆ expected() [2/17]

template<class T, class E>
q23::expected< T, E >::expected ( const expected< T, E > & rhs)
constexprdefault

◆ expected() [3/17]

template<class T, class E>
q23::expected< T, E >::expected ( expected< T, E > && rhs)
constexprdefault

◆ expected() [4/17]

template<class T, class E>
template<class... Args, detail::enable_if_t< std::is_constructible< T, Args &&... >::value > * = nullptr>
q23::expected< T, E >::expected ( in_place_t ,
Args &&... args )
inlineconstexpr

Definition at line 1600 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [5/17]

template<class T, class E>
template<class U, class... Args, detail::enable_if_t< std::is_constructible< T, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
q23::expected< T, E >::expected ( in_place_t ,
std::initializer_list< U > il,
Args &&... args )
inlineconstexpr

Definition at line 1607 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [6/17]

template<class T, class E>
template<class G = E, detail::enable_if_t< std::is_constructible< E, const G & >::value > * = nullptr, detail::enable_if_t<!std::is_convertible< const G &, E >::value > * = nullptr>
q23::expected< T, E >::expected ( const unexpected< G > & e)
inlineexplicitconstexpr

Definition at line 1616 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected(), and q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [7/17]

template<class T, class E>
template<class G = E, detail::enable_if_t< std::is_constructible< E, const G & >::value > * = nullptr, detail::enable_if_t< std::is_convertible< const G &, E >::value > * = nullptr>
q23::expected< T, E >::expected ( unexpected< G > const & e)
inlineconstexpr

Definition at line 1625 of file qexpected_p.h.

◆ expected() [8/17]

template<class T, class E>
template<class G = E, detail::enable_if_t< std::is_constructible< E, G && >::value > * = nullptr, detail::enable_if_t<!std::is_convertible< G &&, E >::value > * = nullptr>
q23::expected< T, E >::expected ( unexpected< G > && e)
inlineexplicitconstexprnoexcept

Definition at line 1633 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [9/17]

template<class T, class E>
template<class G = E, detail::enable_if_t< std::is_constructible< E, G && >::value > * = nullptr, detail::enable_if_t< std::is_convertible< G &&, E >::value > * = nullptr>
q23::expected< T, E >::expected ( unexpected< G > && e)
inlineconstexprnoexcept

Definition at line 1642 of file qexpected_p.h.

◆ expected() [10/17]

template<class T, class E>
template<class... Args, detail::enable_if_t< std::is_constructible< E, Args &&... >::value > * = nullptr>
q23::expected< T, E >::expected ( unexpect_t ,
Args &&... args )
inlineexplicitconstexpr

Definition at line 1650 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [11/17]

template<class T, class E>
template<class U, class... Args, detail::enable_if_t< std::is_constructible< E, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
q23::expected< T, E >::expected ( unexpect_t ,
std::initializer_list< U > il,
Args &&... args )
inlineexplicitconstexpr

Definition at line 1657 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [12/17]

template<class T, class E>
template<class U, class G, detail::enable_if_t<!(std::is_convertible< U const &, T >::value &&std::is_convertible< G const &, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, const U &, const G & > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR q23::expected< T, E >::expected ( const expected< U, G > & rhs)
inlineexplicit

Definition at line 1668 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [13/17]

template<class T, class E>
template<class U, class G, detail::enable_if_t<(std::is_convertible< U const &, T >::value &&std::is_convertible< G const &, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, const U &, const G & > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR q23::expected< T, E >::expected ( const expected< U, G > & rhs)
inline

Definition at line 1683 of file qexpected_p.h.

◆ expected() [14/17]

template<class T, class E>
template<class U, class G, detail::enable_if_t<!(std::is_convertible< U &&, T >::value &&std::is_convertible< G &&, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, U &&, G && > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR q23::expected< T, E >::expected ( expected< U, G > && rhs)
inlineexplicit

Definition at line 1697 of file qexpected_p.h.

Referenced by q23::expected< void, Error >::expected().

Here is the caller graph for this function:

◆ expected() [15/17]

template<class T, class E>
template<class U, class G, detail::enable_if_t<(std::is_convertible< U &&, T >::value &&std::is_convertible< G &&, E >::value)> * = nullptr, detail::expected_enable_from_other< T, E, U, G, U &&, G && > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR q23::expected< T, E >::expected ( expected< U, G > && rhs)
inline

Definition at line 1711 of file qexpected_p.h.

◆ expected() [16/17]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_convertible< U &&, T >::value > * = nullptr, detail::expected_enable_forward_value< T, E, U > * = nullptr>
Q23_TL_EXPECTED_MSVC2015_CONSTEXPR q23::expected< T, E >::expected ( U && v)
inlineexplicit

Definition at line 1724 of file qexpected_p.h.

◆ expected() [17/17]

template<class T, class E>
template<class U = T, detail::enable_if_t< std::is_convertible< U &&, T >::value > * = nullptr, detail::expected_enable_forward_value< T, E, U > * = nullptr>
Q23_TL_EXPECTED_MSVC2015_CONSTEXPR q23::expected< T, E >::expected ( U && v)
inline

Definition at line 1731 of file qexpected_p.h.

Member Function Documentation

◆ and_then() [1/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR auto q23::expected< T, E >::and_then ( F && f) && -> decltype(and_then_impl(std::declval< expected && >(), std::forward< F >(f)))
inline

Definition at line 1381 of file qexpected_p.h.

◆ and_then() [2/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR auto q23::expected< T, E >::and_then ( F && f) & -> decltype(and_then_impl(std::declval< expected & >(), std::forward< F >(f)))
inline

Definition at line 1375 of file qexpected_p.h.

◆ and_then() [3/4]

template<class T, class E>
template<class F>
auto q23::expected< T, E >::and_then ( F && f) const && -> decltype(and_then_impl( std::declval< expected const && >(), std::forward< F >(f)))
inlineconstexpr

Definition at line 1393 of file qexpected_p.h.

◆ and_then() [4/4]

template<class T, class E>
template<class F>
auto q23::expected< T, E >::and_then ( F && f) const & -> decltype(and_then_impl( std::declval< expected const & >(), std::forward< F >(f)))
inlineconstexpr

Definition at line 1386 of file qexpected_p.h.

◆ emplace() [1/4]

template<class T, class E>
template<class... Args, detail::enable_if_t<!std::is_nothrow_constructible< T, Args &&... >::value > * = nullptr>
void q23::expected< T, E >::emplace ( Args &&... args)
inline

Definition at line 1838 of file qexpected_p.h.

◆ emplace() [2/4]

template<class T, class E>
template<class... Args, detail::enable_if_t< std::is_nothrow_constructible< T, Args &&... >::value > * = nullptr>
void q23::expected< T, E >::emplace ( Args &&... args)
inline

Definition at line 1826 of file qexpected_p.h.

◆ emplace() [3/4]

template<class T, class E>
template<class U, class... Args, detail::enable_if_t<!std::is_nothrow_constructible< T, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
void q23::expected< T, E >::emplace ( std::initializer_list< U > il,
Args &&... args )
inline

Definition at line 1878 of file qexpected_p.h.

◆ emplace() [4/4]

template<class T, class E>
template<class U, class... Args, detail::enable_if_t< std::is_nothrow_constructible< T, std::initializer_list< U > &, Args &&... >::value > * = nullptr>
void q23::expected< T, E >::emplace ( std::initializer_list< U > il,
Args &&... args )
inline

Definition at line 1864 of file qexpected_p.h.

◆ error() [1/4]

template<class T, class E>
Q23_TL_EXPECTED_11_CONSTEXPR E & q23::expected< T, E >::error ( ) &
inline

Definition at line 2081 of file qexpected_p.h.

◆ error() [2/4]

template<class T, class E>
Q23_TL_EXPECTED_11_CONSTEXPR E && q23::expected< T, E >::error ( ) &&
inline

Definition at line 2089 of file qexpected_p.h.

◆ error() [3/4]

template<class T, class E>
const E & q23::expected< T, E >::error ( ) const &
inlineconstexpr

Definition at line 2077 of file qexpected_p.h.

◆ error() [4/4]

template<class T, class E>
const E && q23::expected< T, E >::error ( ) const &&
inlineconstexpr

Definition at line 2085 of file qexpected_p.h.

◆ has_value()

◆ map() [1/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl( std::declval< expected & >(), std::declval< F && >())) q23::expected< T, E >::map ( F && f) &
inline

Definition at line 1418 of file qexpected_p.h.

◆ map() [2/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected >(), std::declval< F && >())) q23::expected< T, E >::map ( F && f) &&
inline

Definition at line 1424 of file qexpected_p.h.

◆ map() [3/4]

template<class T, class E>
template<class F>
decltype(expected_map_impl(std::declval< const expected & >(), std::declval< F && >())) q23::expected< T, E >::map ( F && f) const &
inlineconstexpr

Definition at line 1430 of file qexpected_p.h.

◆ map() [4/4]

template<class T, class E>
template<class F>
decltype(expected_map_impl(std::declval< const expected && >(), std::declval< F && >())) q23::expected< T, E >::map ( F && f) const &&
inlineconstexpr

Definition at line 1438 of file qexpected_p.h.

◆ map_error() [1/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected & >(), std::declval< F && >())) q23::expected< T, E >::map_error ( F && f) &
inline

Definition at line 1506 of file qexpected_p.h.

◆ map_error() [2/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected && >(), std::declval< F && >())) q23::expected< T, E >::map_error ( F && f) &&
inline

Definition at line 1512 of file qexpected_p.h.

◆ map_error() [3/4]

template<class T, class E>
template<class F>
decltype(map_error_impl(std::declval< const expected & >(), std::declval< F && >())) q23::expected< T, E >::map_error ( F && f) const &
inlineconstexpr

Definition at line 1518 of file qexpected_p.h.

◆ map_error() [4/4]

template<class T, class E>
template<class F>
decltype(map_error_impl(std::declval< const expected && >(), std::declval< F && >())) q23::expected< T, E >::map_error ( F && f) const &&
inlineconstexpr

Definition at line 1526 of file qexpected_p.h.

◆ operator bool()

template<class T, class E>
q23::expected< T, E >::operator bool ( ) const
inlineexplicitconstexprnoexcept

Definition at line 2046 of file qexpected_p.h.

◆ operator*() [1/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U & q23::expected< T, E >::operator* ( ) &
inline

Definition at line 2028 of file qexpected_p.h.

◆ operator*() [2/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U && q23::expected< T, E >::operator* ( ) &&
inline

Definition at line 2040 of file qexpected_p.h.

◆ operator*() [3/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
const U & q23::expected< T, E >::operator* ( ) const &
inlineconstexpr

Definition at line 2022 of file qexpected_p.h.

◆ operator*() [4/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
const U && q23::expected< T, E >::operator* ( ) const &&
inlineconstexpr

Definition at line 2034 of file qexpected_p.h.

◆ operator->() [1/2]

template<class T, class E>
Q23_TL_EXPECTED_11_CONSTEXPR T * q23::expected< T, E >::operator-> ( )
inline

Definition at line 2015 of file qexpected_p.h.

◆ operator->() [2/2]

template<class T, class E>
const T * q23::expected< T, E >::operator-> ( ) const
inlineconstexpr

Definition at line 2011 of file qexpected_p.h.

◆ operator=() [1/6]

template<class T, class E>
expected & q23::expected< T, E >::operator= ( const expected< T, E > & rhs)
default

◆ operator=() [2/6]

template<class T, class E>
template<class G = E, detail::enable_if_t< std::is_nothrow_copy_constructible< G >::value &&std::is_assignable< G &, G >::value > * = nullptr>
expected & q23::expected< T, E >::operator= ( const unexpected< G > & rhs)
inline

Definition at line 1797 of file qexpected_p.h.

◆ operator=() [3/6]

template<class T, class E>
expected & q23::expected< T, E >::operator= ( expected< T, E > && rhs)
default

◆ operator=() [4/6]

template<class T, class E>
template<class U = T, class G = T, detail::enable_if_t<!std::is_nothrow_constructible< T, U && >::value > * = nullptr, detail::enable_if_t<!std::is_void< U >::value > * = nullptr, detail::enable_if_t<(!std::is_same< expected< T, E >, detail::decay_t< U > >::value &&!detail::conjunction< std::is_scalar< T >, std::is_same< T, detail::decay_t< U > > >::value &&std::is_constructible< T, U >::value &&std::is_assignable< G &, U >::value &&std::is_nothrow_move_constructible< E >::value)> * = nullptr>
expected & q23::expected< T, E >::operator= ( U && v)
inline

Definition at line 1770 of file qexpected_p.h.

◆ operator=() [5/6]

template<class T, class E>
template<class U = T, class G = T, detail::enable_if_t< std::is_nothrow_constructible< T, U && >::value > * = nullptr, detail::enable_if_t<!std::is_void< G >::value > * = nullptr, detail::enable_if_t<(!std::is_same< expected< T, E >, detail::decay_t< U > >::value &&!detail::conjunction< std::is_scalar< T >, std::is_same< T, detail::decay_t< U > > >::value &&std::is_constructible< T, U >::value &&std::is_assignable< G &, U >::value &&std::is_nothrow_move_constructible< E >::value)> * = nullptr>
expected & q23::expected< T, E >::operator= ( U && v)
inline

Definition at line 1746 of file qexpected_p.h.

◆ operator=() [6/6]

template<class T, class E>
template<class G = E, detail::enable_if_t< std::is_nothrow_move_constructible< G >::value &&std::is_move_assignable< G >::value > * = nullptr>
expected & q23::expected< T, E >::operator= ( unexpected< G > && rhs)
inlinenoexcept

Definition at line 1812 of file qexpected_p.h.

◆ or_else() [1/4]

template<class T, class E>
template<class F>
expected Q23_TL_EXPECTED_11_CONSTEXPR q23::expected< T, E >::or_else ( F && f) &
inline

Definition at line 1574 of file qexpected_p.h.

◆ or_else() [2/4]

template<class T, class E>
template<class F>
expected Q23_TL_EXPECTED_11_CONSTEXPR q23::expected< T, E >::or_else ( F && f) &&
inline

Definition at line 1578 of file qexpected_p.h.

◆ or_else() [3/4]

template<class T, class E>
template<class F>
expected constexpr q23::expected< T, E >::or_else ( F && f) const &
inlineconstexpr

Definition at line 1582 of file qexpected_p.h.

◆ or_else() [4/4]

template<class T, class E>
template<class F>
expected constexpr q23::expected< T, E >::or_else ( F && f) const &&
inlineconstexpr

Definition at line 1587 of file qexpected_p.h.

◆ swap()

template<class T, class E>
template<class OT = T, class OE = E>
detail::enable_if_t< detail::is_swappable< OT >::value &&detail::is_swappable< OE >::value &&(std::is_nothrow_move_constructible< OT >::value||std::is_nothrow_move_constructible< OE >::value)> q23::expected< T, E >::swap ( expected< T, E > & rhs)
inlinenoexcept

Definition at line 1994 of file qexpected_p.h.

◆ transform() [1/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl( std::declval< expected & >(), std::declval< F && >())) q23::expected< T, E >::transform ( F && f) &
inline

Definition at line 1462 of file qexpected_p.h.

◆ transform() [2/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected >(), std::declval< F && >())) q23::expected< T, E >::transform ( F && f) &&
inline

Definition at line 1468 of file qexpected_p.h.

◆ transform() [3/4]

template<class T, class E>
template<class F>
decltype(expected_map_impl(std::declval< const expected & >(), std::declval< F && >())) q23::expected< T, E >::transform ( F && f) const &
inlineconstexpr

Definition at line 1474 of file qexpected_p.h.

◆ transform() [4/4]

template<class T, class E>
template<class F>
decltype(expected_map_impl(std::declval< const expected && >(), std::declval< F && >())) q23::expected< T, E >::transform ( F && f) const &&
inlineconstexpr

Definition at line 1482 of file qexpected_p.h.

◆ transform_error() [1/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected & >(), std::declval< F && >())) q23::expected< T, E >::transform_error ( F && f) &
inline

Definition at line 1549 of file qexpected_p.h.

◆ transform_error() [2/4]

template<class T, class E>
template<class F>
Q23_TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected && >(), std::declval< F && >())) q23::expected< T, E >::transform_error ( F && f) &&
inline

Definition at line 1555 of file qexpected_p.h.

◆ transform_error() [3/4]

template<class T, class E>
template<class F>
decltype(map_error_impl(std::declval< const expected & >(), std::declval< F && >())) q23::expected< T, E >::transform_error ( F && f) const &
inlineconstexpr

Definition at line 1561 of file qexpected_p.h.

◆ transform_error() [4/4]

template<class T, class E>
template<class F>
decltype(map_error_impl(std::declval< const expected && >(), std::declval< F && >())) q23::expected< T, E >::transform_error ( F && f) const &&
inlineconstexpr

Definition at line 1569 of file qexpected_p.h.

◆ value() [1/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U & q23::expected< T, E >::value ( ) &
inline

Definition at line 2057 of file qexpected_p.h.

◆ value() [2/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR U && q23::expected< T, E >::value ( ) &&
inline

Definition at line 2071 of file qexpected_p.h.

◆ value() [3/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR const U & q23::expected< T, E >::value ( ) const &
inline

Definition at line 2050 of file qexpected_p.h.

◆ value() [4/4]

template<class T, class E>
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
Q23_TL_EXPECTED_11_CONSTEXPR const U && q23::expected< T, E >::value ( ) const &&
inline

Definition at line 2064 of file qexpected_p.h.

◆ value_or() [1/2]

template<class T, class E>
template<class U>
Q23_TL_EXPECTED_11_CONSTEXPR T q23::expected< T, E >::value_or ( U && v) &&
inline

Definition at line 2100 of file qexpected_p.h.

◆ value_or() [2/2]

template<class T, class E>
template<class U>
T q23::expected< T, E >::value_or ( U && v) const &
inlineconstexpr

Definition at line 2094 of file qexpected_p.h.


The documentation for this class was generated from the following file: