Ada 2.9.2
Fast spec-compliant URL parser
Loading...
Searching...
No Matches
tl::expected< T, E > Class Template Reference

#include <ada.h>

Inheritance diagram for tl::expected< T, E >:
tl::detail::expected_move_assign_base< T, E, bool > tl::detail::expected_delete_ctor_base< T, E, EnableCopy, EnableMove > tl::detail::expected_delete_assign_base< T, E, EnableCopy, EnableMove > tl::detail::expected_default_ctor_base< T, E, Enable >

Public Types

typedef T value_type
 
typedef E error_type
 
typedef unexpected< E > unexpected_type
 

Public Member Functions

template<class F >
TL_EXPECTED_11_CONSTEXPR auto and_then (F &&f) &-> decltype(and_then_impl(std::declval< expected & >(), std::forward< F >(f)))
 
template<class F >
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 >
TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected & >(), std::declval< F && >())) map (F &&f) &
 
template<class F >
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 >
TL_EXPECTED_11_CONSTEXPR decltype(expected_map_impl(std::declval< expected & >(), std::declval< F && >())) transform (F &&f) &
 
template<class F >
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 >
TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected & >(), std::declval< F && >())) map_error (F &&f) &
 
template<class F >
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 >
TL_EXPECTED_11_CONSTEXPR decltype(map_error_impl(std::declval< expected & >(), std::declval< F && >())) transform_error (F &&f) &
 
template<class F >
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 TL_EXPECTED_11_CONSTEXPR or_else (F &&f) &
 
template<class F >
expected 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>
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>
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>
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>
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>
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>
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
 
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>
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>
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>
TL_EXPECTED_11_CONSTEXPR const U & value () const &
 
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
TL_EXPECTED_11_CONSTEXPR U & value () &
 
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
TL_EXPECTED_11_CONSTEXPR const U && value () const &&
 
template<class U = T, detail::enable_if_t<!std::is_void< U >::value > * = nullptr>
TL_EXPECTED_11_CONSTEXPR U && value () &&
 
constexpr const E & error () const &
 
TL_EXPECTED_11_CONSTEXPR E & error () &
 
constexpr const E && error () const &&
 
TL_EXPECTED_11_CONSTEXPR E && error () &&
 
template<class U >
constexpr T value_or (U &&v) const &
 
template<class U >
TL_EXPECTED_11_CONSTEXPRvalue_or (U &&v) &&
 

Detailed Description

template<class T, class E>
class tl::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 3168 of file ada.h.

Member Typedef Documentation

◆ error_type

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

Definition at line 3208 of file ada.h.

◆ unexpected_type

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

Definition at line 3209 of file ada.h.

◆ value_type

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

Definition at line 3207 of file ada.h.

Constructor & Destructor Documentation

◆ expected() [1/17]

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

◆ expected() [2/17]

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

◆ expected() [3/17]

template<class T , class E >
constexpr tl::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>
constexpr tl::expected< T, E >::expected ( in_place_t ,
Args &&... args )
inlineconstexpr

Definition at line 3479 of file ada.h.

References tl::in_place.

◆ 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>
constexpr tl::expected< T, E >::expected ( in_place_t ,
std::initializer_list< U > il,
Args &&... args )
inlineconstexpr

Definition at line 3486 of file ada.h.

References tl::in_place.

◆ 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>
constexpr tl::expected< T, E >::expected ( const unexpected< G > & e)
inlineexplicitconstexpr

Definition at line 3495 of file ada.h.

References tl::unexpect.

◆ 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>
constexpr tl::expected< T, E >::expected ( unexpected< G > const & e)
inlineconstexpr

Definition at line 3504 of file ada.h.

References tl::unexpect.

◆ 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>
constexpr tl::expected< T, E >::expected ( unexpected< G > && e)
inlineexplicitconstexprnoexcept

Definition at line 3512 of file ada.h.

References tl::unexpect.

◆ 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>
constexpr tl::expected< T, E >::expected ( unexpected< G > && e)
inlineconstexprnoexcept

Definition at line 3521 of file ada.h.

References tl::unexpect.

◆ expected() [10/17]

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

Definition at line 3529 of file ada.h.

References tl::unexpect.

◆ 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>
constexpr tl::expected< T, E >::expected ( unexpect_t ,
std::initializer_list< U > il,
Args &&... args )
inlineexplicitconstexpr

Definition at line 3536 of file ada.h.

References tl::unexpect.

◆ 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>
TL_EXPECTED_11_CONSTEXPR tl::expected< T, E >::expected ( const expected< U, G > & rhs)
inlineexplicit

Definition at line 3547 of file ada.h.

◆ 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>
TL_EXPECTED_11_CONSTEXPR tl::expected< T, E >::expected ( const expected< U, G > & rhs)
inline

Definition at line 3562 of file ada.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>
TL_EXPECTED_11_CONSTEXPR tl::expected< T, E >::expected ( expected< U, G > && rhs)
inlineexplicit

Definition at line 3576 of file ada.h.

◆ 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>
TL_EXPECTED_11_CONSTEXPR tl::expected< T, E >::expected ( expected< U, G > && rhs)
inline

Definition at line 3590 of file ada.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>
TL_EXPECTED_MSVC2015_CONSTEXPR tl::expected< T, E >::expected ( U && v)
inlineexplicit

Definition at line 3603 of file ada.h.

References tl::in_place.

◆ 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>
TL_EXPECTED_MSVC2015_CONSTEXPR tl::expected< T, E >::expected ( U && v)
inline

Definition at line 3610 of file ada.h.

References tl::in_place.

Member Function Documentation

◆ and_then() [1/4]

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

Definition at line 3240 of file ada.h.

◆ and_then() [2/4]

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

Definition at line 3235 of file ada.h.

◆ and_then() [3/4]

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

Definition at line 3252 of file ada.h.

◆ and_then() [4/4]

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

Definition at line 3245 of file ada.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 tl::expected< T, E >::emplace ( Args &&... args)
inline

Definition at line 3705 of file ada.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 tl::expected< T, E >::emplace ( Args &&... args)
inline

Definition at line 3717 of file ada.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 tl::expected< T, E >::emplace ( std::initializer_list< U > il,
Args &&... args )
inline

Definition at line 3743 of file ada.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 tl::expected< T, E >::emplace ( std::initializer_list< U > il,
Args &&... args )
inline

Definition at line 3757 of file ada.h.

◆ error() [1/4]

template<class T , class E >
TL_EXPECTED_11_CONSTEXPR E & tl::expected< T, E >::error ( ) &
inline

Definition at line 3959 of file ada.h.

References TL_ASSERT.

◆ error() [2/4]

template<class T , class E >
TL_EXPECTED_11_CONSTEXPR E && tl::expected< T, E >::error ( ) &&
inline

Definition at line 3967 of file ada.h.

References TL_ASSERT.

◆ error() [3/4]

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

◆ error() [4/4]

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

Definition at line 3963 of file ada.h.

References TL_ASSERT.

◆ has_value()

◆ map() [1/4]

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

Definition at line 3281 of file ada.h.

◆ map() [2/4]

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

Definition at line 3287 of file ada.h.

◆ map() [3/4]

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

Definition at line 3293 of file ada.h.

◆ map() [4/4]

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

Definition at line 3301 of file ada.h.

◆ map_error() [1/4]

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

Definition at line 3377 of file ada.h.

◆ map_error() [2/4]

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

Definition at line 3383 of file ada.h.

◆ map_error() [3/4]

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

Definition at line 3389 of file ada.h.

◆ map_error() [4/4]

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

Definition at line 3397 of file ada.h.

◆ operator bool()

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

Definition at line 3924 of file ada.h.

◆ operator*() [1/4]

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

Definition at line 3906 of file ada.h.

References TL_ASSERT.

◆ operator*() [2/4]

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

Definition at line 3918 of file ada.h.

References TL_ASSERT.

◆ operator*() [3/4]

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

Definition at line 3900 of file ada.h.

References TL_ASSERT.

◆ operator*() [4/4]

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

Definition at line 3912 of file ada.h.

References TL_ASSERT.

◆ operator->() [1/2]

template<class T , class E >
TL_EXPECTED_11_CONSTEXPR T * tl::expected< T, E >::operator-> ( )
inline

Definition at line 3893 of file ada.h.

References TL_ASSERT.

◆ operator->() [2/2]

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

Definition at line 3889 of file ada.h.

References TL_ASSERT.

◆ operator=() [1/6]

template<class T , class E >
expected & tl::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 & tl::expected< T, E >::operator= ( const unexpected< G > & rhs)
inline

Definition at line 3676 of file ada.h.

◆ operator=() [3/6]

template<class T , class E >
expected & tl::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< 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 & tl::expected< T, E >::operator= ( U && v)
inline

Definition at line 3625 of file ada.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< 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 & tl::expected< T, E >::operator= ( U && v)
inline

Definition at line 3649 of file ada.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 & tl::expected< T, E >::operator= ( unexpected< G > && rhs)
inlinenoexcept

Definition at line 3691 of file ada.h.

◆ or_else() [1/4]

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

Definition at line 3450 of file ada.h.

◆ or_else() [2/4]

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

Definition at line 3455 of file ada.h.

◆ or_else() [3/4]

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

Definition at line 3460 of file ada.h.

◆ or_else() [4/4]

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

Definition at line 3466 of file ada.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)> tl::expected< T, E >::swap ( expected< T, E > & rhs)
inlinenoexcept

Definition at line 3873 of file ada.h.

References tl::expected< T, E >::has_value(), and tl::expected< T, E >::swap().

Referenced by tl::expected< T, E >::swap(), and tl::swap().

◆ transform() [1/4]

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

Definition at line 3329 of file ada.h.

◆ transform() [2/4]

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

Definition at line 3335 of file ada.h.

◆ transform() [3/4]

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

Definition at line 3341 of file ada.h.

◆ transform() [4/4]

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

Definition at line 3349 of file ada.h.

◆ transform_error() [1/4]

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

Definition at line 3424 of file ada.h.

◆ transform_error() [2/4]

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

Definition at line 3430 of file ada.h.

◆ transform_error() [3/4]

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

Definition at line 3436 of file ada.h.

◆ transform_error() [4/4]

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

Definition at line 3444 of file ada.h.

◆ value() [1/4]

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

Definition at line 3935 of file ada.h.

◆ value() [2/4]

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

Definition at line 3949 of file ada.h.

◆ value() [3/4]

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

Definition at line 3928 of file ada.h.

◆ value() [4/4]

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

Definition at line 3942 of file ada.h.

◆ value_or() [1/2]

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

Definition at line 3980 of file ada.h.

◆ value_or() [2/2]

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

Definition at line 3973 of file ada.h.


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