Ada 2.9.0
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 3156 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 3196 of file ada.h.

◆ unexpected_type

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

Definition at line 3197 of file ada.h.

◆ value_type

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

Definition at line 3195 of file ada.h.

Constructor & Destructor Documentation

◆ expected() [1/17]

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

◆ expected() [2/17]

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

◆ expected() [3/17]

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

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

Definition at line 3474 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>
tl::expected< T, E >::expected ( const unexpected< G > & e)
inlineexplicitconstexpr

Definition at line 3483 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>
tl::expected< T, E >::expected ( unexpected< G > const & e)
inlineconstexpr

Definition at line 3492 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>
tl::expected< T, E >::expected ( unexpected< G > && e)
inlineexplicitconstexprnoexcept

Definition at line 3500 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>
tl::expected< T, E >::expected ( unexpected< G > && e)
inlineconstexprnoexcept

Definition at line 3509 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>
tl::expected< T, E >::expected ( unexpect_t ,
Args &&... args )
inlineexplicitconstexpr

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

Definition at line 3524 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 3535 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 3550 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 3564 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 3578 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 3591 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 3598 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 3228 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 3223 of file ada.h.

◆ and_then() [3/4]

template<class T , class E >
template<class F >
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 3240 of file ada.h.

◆ and_then() [4/4]

template<class T , class E >
template<class F >
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 3233 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 3693 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 3705 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 3731 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 3745 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 3947 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 3955 of file ada.h.

References TL_ASSERT.

◆ error() [3/4]

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

◆ error() [4/4]

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

Definition at line 3951 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 3269 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 3275 of file ada.h.

◆ map() [3/4]

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

Definition at line 3281 of file ada.h.

◆ map() [4/4]

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

Definition at line 3289 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 3365 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 3371 of file ada.h.

◆ map_error() [3/4]

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

Definition at line 3377 of file ada.h.

◆ map_error() [4/4]

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

Definition at line 3385 of file ada.h.

◆ operator bool()

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

Definition at line 3912 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 3894 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 3906 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>
const U & tl::expected< T, E >::operator* ( ) const &
inlineconstexpr

Definition at line 3888 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>
const U && tl::expected< T, E >::operator* ( ) const &&
inlineconstexpr

Definition at line 3900 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 3881 of file ada.h.

References TL_ASSERT.

◆ operator->() [2/2]

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

Definition at line 3877 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 3664 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 3613 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 3637 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 3679 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 3438 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 3443 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 3448 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 3454 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 3861 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 3317 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 3323 of file ada.h.

◆ transform() [3/4]

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

Definition at line 3329 of file ada.h.

◆ transform() [4/4]

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

Definition at line 3337 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 3412 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 3418 of file ada.h.

◆ transform_error() [3/4]

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

Definition at line 3424 of file ada.h.

◆ transform_error() [4/4]

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

Definition at line 3432 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 3923 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 3937 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 3916 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 3930 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 3968 of file ada.h.

◆ value_or() [2/2]

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

Definition at line 3961 of file ada.h.


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