plugify 1.2.8
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
plg::expected< void, E > Class Template Reference
Collaboration diagram for plg::expected< void, E >:
Collaboration graph
[legend]

Public Types

using value_type = void
 
using error_type = E
 
using unexpected_type = unexpected< E >
 
template<class U >
using rebind = expected< U, error_type >
 

Public Member Functions

constexpr expected (expected const &rhs)=default
 
constexpr expected (expected const &rhs)
 
constexpr expected (expected &&) noexcept(std::is_nothrow_move_constructible_v< E >)=default
 
constexpr expected (expected &&rhs) noexcept(std::is_nothrow_move_constructible_v< E >)
 
template<class U , class G >
requires std::is_void_v<U> && std::is_constructible_v<E, G const&> && (!std::is_constructible_v<unexpected<E>, expected<U, G>&>) && (!std::is_constructible_v<unexpected<E>, expected<U, G>>) && (!std::is_constructible_v<unexpected<E>, expected<U, G> const&>) && (!std::is_constructible_v<unexpected<E>, expected<U, G> const&>)
constexpr explicit (!std::is_convertible_v< G const &, E >) expected(expected< U
 
constexpr G const std::forward (rhs.error()))
 
template<class U , class G >
requires std::is_void_v<U> && std::is_constructible_v<E, G> && (!std::is_constructible_v<unexpected<E>, expected<U, G>&>) && (!std::is_constructible_v<unexpected<E>, expected<U, G>>) && (!std::is_constructible_v<unexpected<E>, expected<U, G> const&>) && (!std::is_constructible_v<unexpected<E>, expected<U, G> const&>)
constexpr explicit (!std::is_convertible_v< G const &, E >) expected(expected< U
 
constexpr G std::forward (rhs.error()))
 
template<class G >
requires std::is_constructible_v<E, G const&>
constexpr explicit (!std::is_convertible_v< G const &, E >) expected(unexpected< G > const &e)
 
template<class G >
requires std::is_constructible_v<E, G>
constexpr explicit (!std::is_convertible_v< G, E >) expected(unexpected< G > &&e)
 
constexpr expected (std::in_place_t) noexcept
 
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr expected (unexpect_t, Args &&... args)
 
template<class U , class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr expected (unexpect_t, std::initializer_list< U > il, Args... args)
 
constexpr auto operator= (expected const &rhs) -> expected &
 
constexpr auto operator= (expected &&rhs) noexcept(std::is_nothrow_move_constructible_v< E > &&std::is_nothrow_move_assignable_v< E >) -> expected &
 
template<class G >
requires std::is_constructible_v<E, G const&>
and std::is_assignable_v< E &, G const & > constexpr auto operator= (unexpected< G > const &e) -> expected &
 
template<class G >
requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G>
constexpr auto operator= (unexpected< G > &&e) -> expected &
 
constexpr void emplace () noexcept
 
constexpr void swap (expected &rhs) noexcept(std::is_nothrow_move_constructible_v< E > &&std::is_nothrow_swappable_v< E >)
 
constexpr operator bool () const noexcept
 
constexpr auto has_value () const noexcept -> bool
 
constexpr void operator* () const noexcept
 
constexpr void value () const &
 
constexpr void value () &&
 
constexpr auto error () const &-> E const &
 
constexpr auto error () &-> E &
 
constexpr auto error () const &&-> E const &&
 
constexpr auto error () &&-> E &&
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_copy_constructible_v<E>
constexpr auto and_then (F &&f) &
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_copy_constructible_v<E>
constexpr auto and_then (F &&f) const &
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_move_constructible_v<E>
constexpr auto and_then (F &&f) &&
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_move_constructible_v<E>
constexpr auto and_then (F &&f) const &&
 
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_copy_constructible_v<E>
constexpr auto or_else (F &&f) &
 
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_copy_constructible_v<E>
constexpr auto or_else (F &&f) const &
 
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_move_constructible_v<E>
constexpr auto or_else (F &&f) &&
 
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_move_constructible_v<E>
constexpr auto or_else (F &&f) const &&
 
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_copy_constructible_v<E>
constexpr auto or_else (F &&f) &
 
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_copy_constructible_v<E>
constexpr auto or_else (F &&f) const &
 
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_move_constructible_v<E> && std::is_copy_constructible_v<E>
constexpr auto or_else (F &&f) &&
 
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_move_constructible_v<E> && std::is_copy_constructible_v<E>
constexpr auto or_else (F &&f) const &&
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_copy_constructible_v<E>
constexpr auto transform (F &&f) &
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_copy_constructible_v<E>
constexpr auto transform (F &&f) const &
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_move_constructible_v<E>
constexpr auto transform (F &&f) &&
 
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_move_constructible_v<E>
constexpr auto transform (F &&f) const &&
 
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<E>
constexpr auto transform_error (F &&f) &
 
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<E>
constexpr auto transform_error (F &&f) const &
 
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<E>
constexpr auto transform_error (F &&f) &&
 
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<E>
constexpr auto transform_error (F &&f) const &&
 

Public Attributes

constexpr G constrhs: has_val(rhs.has_value()) { if (!rhs.has_value()) { std::construct_at(std::addressof(this->unex)
 
constexpr G && rhs: has_val(rhs.has_value()) { if (!rhs.has_value()) { std::construct_at(std::addressof(this->unex)
 

Friends

template<class T2 , class E2 >
requires std::is_void_v<T2> && requires(E e, E2 e2) { { e == e2 } -> std::convertible_to<bool>; }
constexpr auto operator== (expected const &x, expected< T2, E2 > const &y) -> bool
 
template<class E2 >
requires requires(expected const& x, unexpected<E2> const& e) { { x.error() == e.value() } -> std::convertible_to<bool>; }
constexpr auto operator== (expected const &x, unexpected< E2 > const &e) -> bool
 
constexpr void swap (expected &x, expected &y) noexcept(noexcept(x.swap(y)))
 

Detailed Description

template<std::destructible E>
class plg::expected< void, E >

Definition at line 954 of file expected.hpp.

Member Typedef Documentation

◆ error_type

template<std::destructible E>
using plg::expected< void, E >::error_type = E

Definition at line 957 of file expected.hpp.

◆ rebind

template<std::destructible E>
template<class U >
using plg::expected< void, E >::rebind = expected<U, error_type>

Definition at line 961 of file expected.hpp.

◆ unexpected_type

template<std::destructible E>
using plg::expected< void, E >::unexpected_type = unexpected<E>

Definition at line 958 of file expected.hpp.

◆ value_type

template<std::destructible E>
using plg::expected< void, E >::value_type = void

Definition at line 956 of file expected.hpp.

Constructor & Destructor Documentation

◆ expected() [1/6]

template<std::destructible E>
constexpr plg::expected< void, E >::expected ( )
inlineconstexprnoexcept

Definition at line 966 of file expected.hpp.

◆ expected() [2/6]

template<std::destructible E>
constexpr plg::expected< void, E >::expected ( expected< void, E > const rhs)
inlineconstexpr

Definition at line 974 of file expected.hpp.

◆ expected() [3/6]

template<std::destructible E>
constexpr plg::expected< void, E >::expected ( expected< void, E > &&  rhs)
inlineconstexprnoexcept

Definition at line 988 of file expected.hpp.

◆ expected() [4/6]

template<std::destructible E>
constexpr plg::expected< void, E >::expected ( std::in_place_t  )
inlineexplicitconstexprnoexcept

Definition at line 1030 of file expected.hpp.

◆ expected() [5/6]

template<std::destructible E>
template<class... Args>
requires std::is_constructible_v<E, Args...>
constexpr plg::expected< void, E >::expected ( unexpect_t  ,
Args &&...  args 
)
inlineexplicitconstexpr

Definition at line 1034 of file expected.hpp.

◆ expected() [6/6]

template<std::destructible E>
template<class U , class... Args>
requires std::is_constructible_v<E, std::initializer_list<U>&, Args...>
constexpr plg::expected< void, E >::expected ( unexpect_t  ,
std::initializer_list< U il,
Args...  args 
)
inlineexplicitconstexpr

Definition at line 1039 of file expected.hpp.

◆ ~expected()

template<std::destructible E>
constexpr plg::expected< void, E >::~expected ( )
inlineconstexpr

Definition at line 1044 of file expected.hpp.

Member Function Documentation

◆ and_then() [1/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::and_then ( F &&  f) &
inlineconstexpr

Definition at line 1197 of file expected.hpp.

◆ and_then() [2/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::and_then ( F &&  f) &&
inlineconstexpr

Definition at line 1219 of file expected.hpp.

◆ and_then() [3/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::and_then ( F &&  f) const &
inlineconstexpr

Definition at line 1208 of file expected.hpp.

◆ and_then() [4/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires detail::is_expected<U> && std::is_same_v<typename U::error_type, E> && std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::and_then ( F &&  f) const &&
inlineconstexpr

Definition at line 1230 of file expected.hpp.

◆ emplace()

template<std::destructible E>
constexpr void plg::expected< void, E >::emplace ( )
inlineconstexprnoexcept

Definition at line 1115 of file expected.hpp.

◆ error() [1/4]

template<std::destructible E>
constexpr auto plg::expected< void, E >::error ( ) && -> E&&
inlineconstexpr

Definition at line 1187 of file expected.hpp.

◆ error() [2/4]

template<std::destructible E>
constexpr auto plg::expected< void, E >::error ( ) & -> E&
inlineconstexpr

Definition at line 1175 of file expected.hpp.

◆ error() [3/4]

template<std::destructible E>
constexpr auto plg::expected< void, E >::error ( ) const && -> E const&&
inlineconstexpr

Definition at line 1181 of file expected.hpp.

◆ error() [4/4]

template<std::destructible E>
constexpr auto plg::expected< void, E >::error ( ) const & -> E const&
inlineconstexpr

Definition at line 1169 of file expected.hpp.

◆ explicit() [1/2]

template<std::destructible E>
template<class G >
requires std::is_constructible_v<E, G const&>
constexpr plg::expected< void, E >::explicit ( !std::is_convertible_v< G const &, E >  ) const &
inlineconstexpr

Definition at line 1020 of file expected.hpp.

◆ explicit() [2/2]

template<std::destructible E>
template<class G >
requires std::is_constructible_v<E, G>
constexpr plg::expected< void, E >::explicit ( !std::is_convertible_v< G, E >  ) &&
inlineconstexpr

Definition at line 1026 of file expected.hpp.

◆ has_value()

template<std::destructible E>
constexpr auto plg::expected< void, E >::has_value ( ) const -> bool
inlineconstexprnoexcept

Definition at line 1149 of file expected.hpp.

◆ operator bool()

template<std::destructible E>
constexpr plg::expected< void, E >::operator bool ( ) const
inlineexplicitconstexprnoexcept

Definition at line 1147 of file expected.hpp.

◆ operator*()

template<std::destructible E>
constexpr void plg::expected< void, E >::operator* ( ) const
inlineconstexprnoexcept

Definition at line 1154 of file expected.hpp.

◆ operator=() [1/4]

template<std::destructible E>
constexpr auto plg::expected< void, E >::operator= ( expected< void, E > &&  rhs) -> expected&
inlineconstexprnoexcept

Definition at line 1069 of file expected.hpp.

◆ operator=() [2/4]

template<std::destructible E>
constexpr auto plg::expected< void, E >::operator= ( expected< void, E > const rhs) -> expected&
inlineconstexpr

Definition at line 1052 of file expected.hpp.

◆ operator=() [3/4]

template<std::destructible E>
template<class G >
requires std::is_constructible_v<E, G> && std::is_assignable_v<E&, G>
constexpr auto plg::expected< void, E >::operator= ( unexpected< G > &&  e) -> expected&
inlineconstexpr

Definition at line 1104 of file expected.hpp.

◆ operator=() [4/4]

template<std::destructible E>
template<class G >
requires std::is_constructible_v<E, G const&>
and std::is_assignable_v< E &, G const & > constexpr auto plg::expected< void, E >::operator= ( unexpected< G > const e) -> expected&
inlineconstexpr

Definition at line 1090 of file expected.hpp.

◆ or_else() [1/8]

template<std::destructible E>
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) &
inlineconstexpr

Definition at line 1242 of file expected.hpp.

◆ or_else() [2/8]

template<std::destructible E>
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) &
inlineconstexpr

Definition at line 1289 of file expected.hpp.

◆ or_else() [3/8]

template<std::destructible E>
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) &&
inlineconstexpr

Definition at line 1266 of file expected.hpp.

◆ or_else() [4/8]

template<std::destructible E>
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_move_constructible_v<E> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) &&
inlineconstexpr

Definition at line 1314 of file expected.hpp.

◆ or_else() [5/8]

template<std::destructible E>
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) const &
inlineconstexpr

Definition at line 1254 of file expected.hpp.

◆ or_else() [6/8]

template<std::destructible E>
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) const &
inlineconstexpr

Definition at line 1301 of file expected.hpp.

◆ or_else() [7/8]

template<std::destructible E>
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires detail::is_expected<G> && std::is_same_v<typename G::value_type, void> && std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) const &&
inlineconstexpr

Definition at line 1278 of file expected.hpp.

◆ or_else() [8/8]

template<std::destructible E>
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_void_v<G> && std::is_move_constructible_v<E> && std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::or_else ( F &&  f) const &&
inlineconstexpr

Definition at line 1328 of file expected.hpp.

◆ swap()

template<std::destructible E>
constexpr void plg::expected< void, E >::swap ( expected< void, E > &  rhs)
inlineconstexprnoexcept

Definition at line 1123 of file expected.hpp.

◆ transform() [1/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::transform ( F &&  f) &
inlineconstexpr

Definition at line 1339 of file expected.hpp.

◆ transform() [2/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::transform ( F &&  f) &&
inlineconstexpr

Definition at line 1367 of file expected.hpp.

◆ transform() [3/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::transform ( F &&  f) const &
inlineconstexpr

Definition at line 1353 of file expected.hpp.

◆ transform() [4/4]

template<std::destructible E>
template<class F , class U = std::remove_cvref_t<std::invoke_result_t<F>>>
requires std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::transform ( F &&  f) const &&
inlineconstexpr

Definition at line 1381 of file expected.hpp.

◆ transform_error() [1/4]

template<std::destructible E>
template<class F , class V = E&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::transform_error ( F &&  f) &
inlineconstexpr

Definition at line 1396 of file expected.hpp.

◆ transform_error() [2/4]

template<std::destructible E>
template<class F , class V = E&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::transform_error ( F &&  f) &&
inlineconstexpr

Definition at line 1418 of file expected.hpp.

◆ transform_error() [3/4]

template<std::destructible E>
template<class F , class V = E const&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_copy_constructible_v<E>
constexpr auto plg::expected< void, E >::transform_error ( F &&  f) const &
inlineconstexpr

Definition at line 1407 of file expected.hpp.

◆ transform_error() [4/4]

template<std::destructible E>
template<class F , class V = E const&&, class G = std::remove_cvref_t<std::invoke_result_t<F, V>>>
requires std::is_move_constructible_v<E>
constexpr auto plg::expected< void, E >::transform_error ( F &&  f) const &&
inlineconstexpr

Definition at line 1429 of file expected.hpp.

◆ value() [1/2]

template<std::destructible E>
constexpr void plg::expected< void, E >::value ( ) &&
inlineconstexpr

Definition at line 1162 of file expected.hpp.

◆ value() [2/2]

template<std::destructible E>
constexpr void plg::expected< void, E >::value ( ) const &
inlineconstexpr

Definition at line 1156 of file expected.hpp.

Friends And Related Symbol Documentation

◆ operator== [1/2]

template<std::destructible E>
template<class T2 , class E2 >
requires std::is_void_v<T2> && requires(E e, E2 e2) { { e == e2 } -> std::convertible_to<bool>; }
constexpr auto operator== ( expected< void, E > const x,
expected< T2, E2 > const y 
) -> bool
friend

Definition at line 1442 of file expected.hpp.

◆ operator== [2/2]

template<std::destructible E>
template<class E2 >
requires requires(expected const& x, unexpected<E2> const& e) { { x.error() == e.value() } -> std::convertible_to<bool>; }
constexpr auto operator== ( expected< void, E > const x,
unexpected< E2 > const e 
) -> bool
friend

Definition at line 1452 of file expected.hpp.

◆ swap

template<std::destructible E>
constexpr void swap ( expected< void, E > &  x,
expected< void, E > &  y 
)
friend

Definition at line 1458 of file expected.hpp.

Member Data Documentation

◆ rhs [1/2]

template<std::destructible E>
constexpr G const& plg::expected< void, E >::rhs

Definition at line 999 of file expected.hpp.

◆ rhs [2/2]

template<std::destructible E>
constexpr G&& plg::expected< void, E >::rhs

Definition at line 1010 of file expected.hpp.

◆ unex

template<std::destructible E>
E plg::expected< void, E >::unex

Definition at line 1466 of file expected.hpp.


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