VCCC  2024.05
VisualCamp Common C++ library
expected< T, E > Class Template Reference

#include </home/jarvis/actions-runner/jarvis-vccc-2/_work/vccc/vccc/include/vccc/__expected/expected.hpp>

+ Inheritance diagram for expected< T, E >:

Public Types

using value_type = T
 
using error_type = E
 
using unexpected_type = unexpected< E >
 
template<typename U >
using rebind = expected< U, E >
 

Public Member Functions

template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, detail::void_or< T, std::is_default_constructible, T > >::value, int > = 0>
constexpr expected ()
 
constexpr expected (const expected &other)=default
 
constexpr expected (expected &&other)=default
 
template<typename U , typename G , std::enable_if_t< conjunction< negation< conjunction< std::is_convertible< std::add_lvalue_reference_t< const U >, T >, std::is_convertible< const G &, E >>>, disjunction< conjunction< std::is_void< T >, std::is_void< U >>, std::is_constructible< T, std::add_lvalue_reference_t< const U >> >, std::is_constructible< E, const G & > >::value, int > = 0>
constexpr expected (const expected< U, G > &other)
 
template<typename U , typename G , std::enable_if_t< conjunction< conjunction< std::is_convertible< std::add_lvalue_reference_t< const U >, T >, std::is_convertible< const G &, E >>, disjunction< conjunction< std::is_void< T >, std::is_void< U >>, std::is_constructible< T, std::add_lvalue_reference_t< const U >> >, std::is_constructible< E, const G & > >::value, int > = 0>
constexpr expected (const expected< U, G > &other)
 
template<typename U , typename G , std::enable_if_t< conjunction< negation< conjunction< std::is_convertible< U, T >, std::is_convertible< G, E >>>, disjunction< conjunction< std::is_void< T >, std::is_void< U >>, std::is_constructible< T, U > >, std::is_constructible< E, G > >::value, int > = 0>
constexpr expected (expected< U, G > &&other)
 
template<typename U , typename G , std::enable_if_t< conjunction< conjunction< std::is_convertible< U, T >, std::is_convertible< G, E >>, disjunction< conjunction< std::is_void< T >, std::is_void< U >>, std::is_constructible< T, U > >, std::is_constructible< E, G > >::value, int > = 0>
constexpr expected (expected< U, G > &&other)
 
template<typename U = T, std::enable_if_t< conjunction< negation< std::is_void< T >>, negation< std::is_same< remove_cvref_t< U >, in_place_t >>, negation< std::is_same< expected, remove_cvref_t< U >>>, std::is_constructible< T, U >, negation< is_specialization< remove_cvref_t< U >, unexpected >>, disjunction< negation< std::is_same< bool, std::remove_cv_t< T >>>, negation< is_specialization< remove_cvref_t< U >, expected >> >, negation< std::is_convertible< U, T >> >::value, int > = 0>
constexpr expected (U &&v)
 
template<typename U = T, std::enable_if_t< conjunction< negation< std::is_void< T >>, negation< std::is_same< remove_cvref_t< U >, in_place_t >>, negation< std::is_same< expected, remove_cvref_t< U >>>, std::is_constructible< T, U >, negation< is_specialization< remove_cvref_t< U >, unexpected >>, disjunction< negation< std::is_same< bool, std::remove_cv_t< T >>>, negation< is_specialization< remove_cvref_t< U >, expected >> >, std::is_convertible< U, T > >::value, int > = 0>
constexpr expected (U &&v)
 
template<typename G , std::enable_if_t< conjunction< std::is_constructible< E, const G & >, negation< std::is_convertible< const G &, E >> >::value, int > = 0>
constexpr expected (const unexpected< G > &e)
 
template<typename G , std::enable_if_t< conjunction< std::is_constructible< E, G >, std::is_convertible< const G &, E > >::value, int > = 0>
constexpr expected (const unexpected< G > &e)
 
template<typename G , std::enable_if_t< conjunction< std::is_constructible< E, G >, negation< std::is_convertible< G, E >> >::value, int > = 0>
constexpr expected (unexpected< G > &&e)
 
template<typename G , std::enable_if_t< conjunction< std::is_constructible< E, G >, std::is_convertible< G, E > >::value, int > = 0>
constexpr expected (unexpected< G > &&e)
 
template<typename... Args, std::enable_if_t< conjunction< negation< std::is_void< T >>, std::is_constructible< T, Args... > >::value, int > = 0>
constexpr expected (in_place_t, Args &&... args)
 
template<typename U , typename... Args, std::enable_if_t< conjunction< negation< std::is_void< T >>, std::is_constructible< T, std::initializer_list< U > &, Args... > >::value, int > = 0>
constexpr expected (in_place_t, std::initializer_list< U > il, Args &&... args)
 
template<typename U = T, std::enable_if_t< std::is_void< U >::value, int > = 0>
constexpr expected (in_place_t) noexcept
 
template<typename... Args, std::enable_if_t< std::is_constructible< E, Args... > ::value, int > = 0>
constexpr expected (unexpect_t, Args &&... args)
 
template<typename U , typename... Args, std::enable_if_t< std::is_constructible< E, std::initializer_list< U > &, Args... > ::value, int > = 0>
constexpr expected (unexpect_t, std::initializer_list< U > il, Args &&... args)
 
constexpr expectedoperator= (const expected &)=default
 
constexpr expectedoperator= (expected &&)=default
 
template<typename U = T, std::enable_if_t< conjunction< negation< std::is_void< T >>, negation< std::is_same< expected, remove_cvref_t< U >>>, negation< is_specialization< remove_cvref_t< U >, unexpected >>, std::is_constructible< T, U >, std::is_assignable< std::add_lvalue_reference_t< T >, U >, disjunction< std::is_nothrow_constructible< T, U >, std::is_nothrow_move_constructible< T >, std::is_nothrow_move_constructible< E > > >::value, int > = 0>
constexpr expectedoperator= (U &&v)
 
template<typename G , std::enable_if_t< conjunction< std::is_constructible< E, const G & >, std::is_assignable< E &, const G & >, disjunction< std::is_void< T >, std::is_nothrow_constructible< E, const G & >, std::is_nothrow_move_constructible< T >, std::is_nothrow_move_constructible< E > > >::value, int > = 0>
constexpr expectedoperator= (const unexpected< G > &e)
 
template<typename G , std::enable_if_t< conjunction< std::is_constructible< E, G >, std::is_assignable< E &, G >, disjunction< std::is_void< T >, std::is_nothrow_constructible< E, G >, std::is_nothrow_move_constructible< T >, std::is_nothrow_move_constructible< E > > >::value, int > = 0>
constexpr expectedoperator= (unexpected< G > &&e)
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr const T * operator-> () const noexcept
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr T * operator-> () noexcept
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr const U & operator* () const &noexcept
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr U & operator* () &noexcept
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr const U && operator* () const &&noexcept
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr U && operator* () &&noexcept
 
template<typename U = T, std::enable_if_t< std::is_void< U >::value, int > = 0>
constexpr void operator* () &noexcept
 
template<typename U = T, std::enable_if_t< std::is_void< U >::value, int > = 0>
constexpr void operator* () const &noexcept
 
template<typename U = T, std::enable_if_t< std::is_void< U >::value, int > = 0>
constexpr void operator* () &&noexcept
 
template<typename U = T, std::enable_if_t< std::is_void< U >::value, int > = 0>
constexpr void operator* () const &&noexcept
 
VCCC_NODISCARD bool has_value () const noexcept
 
constexpr operator bool () const noexcept
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr U & value () &
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr const U & value () const &
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr U && value () &&
 
template<typename U = T, std::enable_if_t<!std::is_void< U >::value, int > = 0>
constexpr const U && value () const &&
 
template<typename U = T, std::enable_if_t< std::is_void< U >::value, int > = 0>
constexpr void value () const &
 
template<typename U = T, std::enable_if_t< std::is_void< U >::value, int > = 0>
constexpr void value () &&
 
constexpr const E & error () const &noexcept
 
constexpr E & error () &noexcept
 
constexpr const E && error () const &&noexcept
 
constexpr E && error () &&noexcept
 
template<typename U , std::enable_if_t< conjunction< negation< std::is_void< T >>, copy_constructible< T >, convertible_to< U &&, T > >::value, int > = 0>
constexpr T value_or (U &&default_value) const &
 
template<typename U , std::enable_if_t< conjunction< negation< std::is_void< T >>, move_constructible< T >, convertible_to< U &&, T > >::value, int > = 0>
constexpr T value_or (U &&default_value) &&
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, E & >, is_invocable< and_then_t, F, expected & > >::value, int > = 0>
constexpr auto and_then (F &&f) &
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, const E & >, is_invocable< and_then_t, F, const expected & > >::value, int > = 0>
constexpr auto and_then (F &&f) const &
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, E && >, is_invocable< and_then_t, F, expected && > >::value, int > = 0>
constexpr auto and_then (F &&f) &&
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, const E && >, is_invocable< and_then_t, F, const expected && > >::value, int > = 0>
constexpr auto and_then (F &&f) const &&
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, E & >, is_invocable< transform_t, F, expected & > >::value, int > = 0>
constexpr auto transform (F &&f) &
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, const E & >, is_invocable< transform_t, F, const expected & > >::value, int > = 0>
constexpr auto transform (F &&f) const &
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, E && >, is_invocable< transform_t, F, expected && > >::value, int > = 0>
constexpr auto transform (F &&f) &&
 
template<typename F , std::enable_if_t< conjunction< std::is_constructible< E, const E && >, is_invocable< transform_t, F, const expected && > >::value, int > = 0>
constexpr auto transform (F &&f) const &&
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_lvalue_reference_t< T >>, is_invocable< or_else_t, F, expected & > >::value, int > = 0>
constexpr auto or_else (F &&f) &
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_lvalue_reference_t< std::add_const_t< T >>>, is_invocable< or_else_t, F, const expected & > >::value, int > = 0>
constexpr auto or_else (F &&f) const &
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_rvalue_reference_t< T >>, is_invocable< or_else_t, F, expected && > >::value, int > = 0>
constexpr auto or_else (F &&f) &&
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_rvalue_reference_t< std::add_const_t< T >>>, is_invocable< or_else_t, F, const expected && > >::value, int > = 0>
constexpr auto or_else (F &&f) const &&
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_lvalue_reference_t< T >>, is_invocable< transform_error_t, F, expected & > >::value, int > = 0>
constexpr auto transform_error (F &&f) &
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_lvalue_reference_t< std::add_const_t< T >>>, is_invocable< transform_error_t, F, const expected & > >::value, int > = 0>
constexpr auto transform_error (F &&f) const &
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_rvalue_reference_t< T >>, is_invocable< transform_error_t, F, expected && > >::value, int > = 0>
constexpr auto transform_error (F &&f) &&
 
template<typename F , std::enable_if_t< conjunction< detail::void_or< T, std::is_constructible, T, std::add_rvalue_reference_t< std::add_const_t< T >>>, is_invocable< transform_error_t, F, const expected && > >::value, int > = 0>
constexpr auto transform_error (F &&f) const &&
 
template<typename... Args, std::enable_if_t< conjunction< negation< std::is_void< T >>, std::is_nothrow_constructible< T, Args... > >::value, int > = 0>
constexpr std::add_lvalue_reference_t< T > emplace (Args &&... args) noexcept
 
template<typename U , typename... Args, std::enable_if_t< conjunction< negation< std::is_void< T >>, std::is_nothrow_constructible< T, std::initializer_list< U > &, Args... > >::value, int > = 0>
constexpr std::add_lvalue_reference_t< T > emplace (std::initializer_list< U > il, Args &&... args) noexcept
 
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, std::is_void< T > >::value, int > = 0>
constexpr void emplace () noexcept
 
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, detail::void_or< T, is_swappable, T >, is_swappable< E >, detail::void_or< T, std::is_move_constructible, T >, std::is_move_constructible< E >, disjunction< detail::void_or< T, std::is_nothrow_move_constructible, T >, std::is_nothrow_move_constructible< E > > >::value, int > = 0>
constexpr void swap (expected &other) noexcept(nothrow_swappable::value)
 

Friends

template<typename T2 , typename E2 , std::enable_if_t< conjunction< negation< std::is_void< T2 >>, negation< std::is_void< T >>, rel_ops::is_equality_comparable< std::add_lvalue_reference_t< std::add_const_t< T >>, std::add_lvalue_reference_t< std::add_const_t< T2 >>>, rel_ops::is_equality_comparable< const E &, const E2 & > >::value, int > = 0>
constexpr friend bool operator== (const expected &lhs, const expected< T2, E2 > &rhs)
 
template<typename T2 , typename E2 , std::enable_if_t< conjunction< std::is_void< T2 >, std::is_void< T >, rel_ops::is_equality_comparable< const E &, const E2 & > >::value, int > = 0>
constexpr friend bool operator== (const expected &lhs, const expected< T2, E2 > &rhs)
 
template<typename T2 , typename E2 , std::enable_if_t< rel_ops::is_equality_comparable< const expected &, const expected< T2, E2 > & >::value, int > = 0>
constexpr friend bool operator!= (const expected &lhs, const expected< T2, E2 > &rhs)
 
template<typename T2 , std::enable_if_t< conjunction< negation< std::is_void< T >>, rel_ops::is_equality_comparable< std::add_lvalue_reference_t< std::add_const_t< T >>, const T2 & > >::value, int > = 0>
constexpr friend bool operator== (const expected &x, const T2 &y)
 
template<typename T2 , std::enable_if_t< rel_ops::is_equality_comparable< const expected &, const T2 & >::value, int > = 0>
constexpr friend bool operator!= (const expected &x, const T2 &y)
 
template<typename T2 , std::enable_if_t< rel_ops::is_equality_comparable< const expected &, const T2 & >::value, int > = 0>
constexpr friend bool operator== (const T2 &y, const expected &x)
 
template<typename T2 , std::enable_if_t< rel_ops::is_equality_comparable< const expected &, const T2 & >::value, int > = 0>
constexpr friend bool operator!= (const T2 &y, const expected &x)
 
template<typename E2 , std::enable_if_t< rel_ops::is_equality_comparable< const E &, const E2 & >::value, int > = 0>
constexpr friend bool operator== (const expected &x, const unexpected< E2 > &e)
 
template<typename E2 , std::enable_if_t< rel_ops::is_equality_comparable< const E &, const E2 & >::value, int > = 0>
constexpr friend bool operator!= (const expected &x, const unexpected< E2 > &e)
 
template<typename E2 , std::enable_if_t< rel_ops::is_equality_comparable< const E &, const E2 & >::value, int > = 0>
constexpr friend bool operator== (const unexpected< E2 > &e, const expected &x)
 
template<typename E2 , std::enable_if_t< rel_ops::is_equality_comparable< const E &, const E2 & >::value, int > = 0>
constexpr friend bool operator!= (const unexpected< E2 > &e, const expected &x)
 

Member Typedef Documentation

◆ error_type

using error_type = E

◆ rebind

using rebind = expected<U, E>

◆ unexpected_type

◆ value_type

using value_type = T

Constructor & Destructor Documentation

◆ expected() [1/18]

constexpr expected ( )
inlineconstexpr

◆ expected() [2/18]

constexpr expected ( const expected< T, E > &  other)
constexprdefault

◆ expected() [3/18]

constexpr expected ( expected< T, E > &&  other)
constexprdefault

◆ expected() [4/18]

constexpr expected ( const expected< U, G > &  other)
inlineexplicitconstexpr

◆ expected() [5/18]

constexpr expected ( const expected< U, G > &  other)
inlineconstexpr

◆ expected() [6/18]

constexpr expected ( expected< U, G > &&  other)
inlineexplicitconstexpr

◆ expected() [7/18]

constexpr expected ( expected< U, G > &&  other)
inlineconstexpr

◆ expected() [8/18]

constexpr expected ( U &&  v)
inlineexplicitconstexpr

◆ expected() [9/18]

constexpr expected ( U &&  v)
inlineconstexpr

◆ expected() [10/18]

constexpr expected ( const unexpected< G > &  e)
inlineexplicitconstexpr

◆ expected() [11/18]

constexpr expected ( const unexpected< G > &  e)
inlineconstexpr

◆ expected() [12/18]

constexpr expected ( unexpected< G > &&  e)
inlineexplicitconstexpr

◆ expected() [13/18]

constexpr expected ( unexpected< G > &&  e)
inlineconstexpr

◆ expected() [14/18]

constexpr expected ( in_place_t  ,
Args &&...  args 
)
inlineexplicitconstexpr

◆ expected() [15/18]

constexpr expected ( in_place_t  ,
std::initializer_list< U >  il,
Args &&...  args 
)
inlineexplicitconstexpr

◆ expected() [16/18]

constexpr expected ( in_place_t  )
inlineexplicitconstexprnoexcept

◆ expected() [17/18]

constexpr expected ( unexpect_t  ,
Args &&...  args 
)
inlineexplicitconstexpr

◆ expected() [18/18]

constexpr expected ( unexpect_t  ,
std::initializer_list< U >  il,
Args &&...  args 
)
inlineexplicitconstexpr

Member Function Documentation

◆ and_then() [1/4]

constexpr auto and_then ( F &&  f) &
inlineconstexpr

◆ and_then() [2/4]

constexpr auto and_then ( F &&  f) &&
inlineconstexpr

◆ and_then() [3/4]

constexpr auto and_then ( F &&  f) const &
inlineconstexpr

◆ and_then() [4/4]

constexpr auto and_then ( F &&  f) const &&
inlineconstexpr

◆ emplace() [1/3]

constexpr void emplace ( )
inlineconstexprnoexcept

◆ emplace() [2/3]

constexpr std::add_lvalue_reference_t<T> emplace ( Args &&...  args)
inlineconstexprnoexcept

◆ emplace() [3/3]

constexpr std::add_lvalue_reference_t<T> emplace ( std::initializer_list< U >  il,
Args &&...  args 
)
inlineconstexprnoexcept

◆ error() [1/4]

constexpr E&& error ( ) &&
inlineconstexprnoexcept

◆ error() [2/4]

constexpr E& error ( ) &
inlineconstexprnoexcept

◆ error() [3/4]

constexpr const E&& error ( ) const &&
inlineconstexprnoexcept

◆ error() [4/4]

constexpr const E& error ( ) const &
inlineconstexprnoexcept

◆ has_value()

VCCC_NODISCARD bool has_value ( ) const
inlinenoexcept

◆ operator bool()

constexpr operator bool ( ) const
inlineexplicitconstexprnoexcept

◆ operator*() [1/8]

constexpr U&& operator* ( ) &&
inlineconstexprnoexcept

◆ operator*() [2/8]

constexpr void operator* ( ) &&
inlineconstexprnoexcept

◆ operator*() [3/8]

constexpr U& operator* ( ) &
inlineconstexprnoexcept

◆ operator*() [4/8]

constexpr void operator* ( ) &
inlineconstexprnoexcept

◆ operator*() [5/8]

constexpr const U&& operator* ( ) const &&
inlineconstexprnoexcept

◆ operator*() [6/8]

constexpr void operator* ( ) const &&
inlineconstexprnoexcept

◆ operator*() [7/8]

constexpr const U& operator* ( ) const &
inlineconstexprnoexcept

◆ operator*() [8/8]

constexpr void operator* ( ) const &
inlineconstexprnoexcept

◆ operator->() [1/2]

constexpr const T* operator-> ( ) const
inlineconstexprnoexcept

◆ operator->() [2/2]

constexpr T* operator-> ( )
inlineconstexprnoexcept

◆ operator=() [1/5]

constexpr expected& operator= ( const expected< T, E > &  )
constexprdefault

◆ operator=() [2/5]

constexpr expected& operator= ( const unexpected< G > &  e)
inlineconstexpr

◆ operator=() [3/5]

constexpr expected& operator= ( expected< T, E > &&  )
constexprdefault

◆ operator=() [4/5]

constexpr expected& operator= ( U &&  v)
inlineconstexpr

◆ operator=() [5/5]

constexpr expected& operator= ( unexpected< G > &&  e)
inlineconstexpr

◆ or_else() [1/4]

constexpr auto or_else ( F &&  f) &
inlineconstexpr

◆ or_else() [2/4]

constexpr auto or_else ( F &&  f) &&
inlineconstexpr

◆ or_else() [3/4]

constexpr auto or_else ( F &&  f) const &
inlineconstexpr

◆ or_else() [4/4]

constexpr auto or_else ( F &&  f) const &&
inlineconstexpr

◆ swap()

constexpr void swap ( expected< T, E > &  other)
inlineconstexprnoexcept

◆ transform() [1/4]

constexpr auto transform ( F &&  f) &
inlineconstexpr

◆ transform() [2/4]

constexpr auto transform ( F &&  f) &&
inlineconstexpr

◆ transform() [3/4]

constexpr auto transform ( F &&  f) const &
inlineconstexpr

◆ transform() [4/4]

constexpr auto transform ( F &&  f) const &&
inlineconstexpr

◆ transform_error() [1/4]

constexpr auto transform_error ( F &&  f) &
inlineconstexpr

◆ transform_error() [2/4]

constexpr auto transform_error ( F &&  f) &&
inlineconstexpr

◆ transform_error() [3/4]

constexpr auto transform_error ( F &&  f) const &
inlineconstexpr

◆ transform_error() [4/4]

constexpr auto transform_error ( F &&  f) const &&
inlineconstexpr

◆ value() [1/6]

constexpr U& value ( ) &
inlineconstexpr

◆ value() [2/6]

constexpr U&& value ( ) &&
inlineconstexpr

◆ value() [3/6]

constexpr void value ( ) &&
inlineconstexpr

◆ value() [4/6]

constexpr const U& value ( ) const &
inlineconstexpr

◆ value() [5/6]

constexpr void value ( ) const &
inlineconstexpr

◆ value() [6/6]

constexpr const U&& value ( ) const &&
inlineconstexpr

◆ value_or() [1/2]

constexpr T value_or ( U &&  default_value) &&
inlineconstexpr

◆ value_or() [2/2]

constexpr T value_or ( U &&  default_value) const &
inlineconstexpr

Friends And Related Function Documentation

◆ operator!= [1/5]

constexpr friend bool operator!= ( const expected< T, E > &  lhs,
const expected< T2, E2 > &  rhs 
)
friend

◆ operator!= [2/5]

constexpr friend bool operator!= ( const expected< T, E > &  x,
const T2 &  y 
)
friend

◆ operator!= [3/5]

constexpr friend bool operator!= ( const expected< T, E > &  x,
const unexpected< E2 > &  e 
)
friend

◆ operator!= [4/5]

constexpr friend bool operator!= ( const T2 &  y,
const expected< T, E > &  x 
)
friend

◆ operator!= [5/5]

constexpr friend bool operator!= ( const unexpected< E2 > &  e,
const expected< T, E > &  x 
)
friend

◆ operator== [1/6]

constexpr friend bool operator== ( const expected< T, E > &  lhs,
const expected< T2, E2 > &  rhs 
)
friend

◆ operator== [2/6]

constexpr friend bool operator== ( const expected< T, E > &  lhs,
const expected< T2, E2 > &  rhs 
)
friend

◆ operator== [3/6]

constexpr friend bool operator== ( const expected< T, E > &  x,
const T2 &  y 
)
friend

◆ operator== [4/6]

constexpr friend bool operator== ( const expected< T, E > &  x,
const unexpected< E2 > &  e 
)
friend

◆ operator== [5/6]

constexpr friend bool operator== ( const T2 &  y,
const expected< T, E > &  x 
)
friend

◆ operator== [6/6]

constexpr friend bool operator== ( const unexpected< E2 > &  e,
const expected< T, E > &  x 
)
friend

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