tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
expected< T, E > Struct Template Reference

#include <expected.hpp>

Public Types

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

Public Member Functions

constexpr expected () noexcept(is_nothrow_default_constructible_v< T >)
 Value-initializes member of type T.
 
constexpr expected (expected &&rhs) noexcept(etl::is_nothrow_move_constructible_v< T > and etl::is_nothrow_move_constructible_v< E >)
 
constexpr expected (expected &&rhs)=default
 
constexpr expected (expected const &rhs) noexcept(etl::is_nothrow_copy_constructible_v< T > and etl::is_nothrow_copy_constructible_v< E >)
 
constexpr expected (expected const &rhs)=default
 
template<typename... Args>
requires is_constructible_v<T, Args...>
constexpr expected (in_place_t, Args &&... args) noexcept(is_nothrow_constructible_v< T, Args... >)
 
template<typename... Args>
requires is_constructible_v<E, Args...>
constexpr expected (unexpect_t, Args &&... args) noexcept(is_nothrow_constructible_v< E, Args... >)
 
template<typename F >
requires (is_constructible_v<E, decltype(error())>)
constexpr auto and_then (F &&f) &
 
template<typename F >
requires (is_constructible_v<E, decltype(error())>)
constexpr auto and_then (F &&f) &&
 
template<typename F >
requires (is_constructible_v<E, decltype(etl::move(error()))>)
constexpr auto and_then (F &&f) const &
 
template<typename F >
requires (is_constructible_v<E, decltype(etl::move(error()))>)
constexpr auto and_then (F &&f) const &&
 
template<typename... Args>
requires is_nothrow_constructible_v<T, Args...>
constexpr auto emplace (Args &&... args) noexcept -> T &
 
constexpr auto error () &&-> E &&
 
constexpr auto error () &-> E &
 
constexpr auto error () const &&-> E const &&
 
constexpr auto error () const &-> E const &
 
constexpr auto has_value () const noexcept -> bool
 
constexpr operator bool () const noexcept
 
constexpr auto operator* () &&noexcept -> T &&
 
constexpr auto operator* () &noexcept -> T &
 
constexpr auto operator* () const &&noexcept -> T const &&
 
constexpr auto operator* () const &noexcept -> T const &
 
constexpr auto operator-> () const noexcept -> T const *
 
constexpr auto operator-> () noexcept -> T *
 
template<typename F >
requires (is_constructible_v<T, decltype(**this)>)
constexpr auto or_else (F &&f) &
 
template<typename F >
requires (is_constructible_v<T, decltype(**this)>)
constexpr auto or_else (F &&f) &&
 
template<typename F >
requires (is_constructible_v<T, decltype(etl::move(**this))>)
constexpr auto or_else (F &&f) const &
 
template<typename F >
requires (is_constructible_v<T, decltype(etl::move(**this))>)
constexpr auto or_else (F &&f) const &&
 
template<typename U >
constexpr auto value_or (U &&fallback) &&-> T
 
template<typename U >
constexpr auto value_or (U &&fallback) const &-> T
 

Member Typedef Documentation

◆ error_type

template<typename T , typename E >
using error_type = E

◆ rebind

template<typename T , typename E >
template<typename U >
using rebind = etl::expected<U, error_type>

◆ unexpected_type

◆ value_type

template<typename T , typename E >
using value_type = T

Constructor & Destructor Documentation

◆ expected() [1/7]

template<typename T , typename E >
constexpr expected ( )
inlineexplicitconstexprnoexcept

Value-initializes member of type T.

Postcondition
has_value() == true

◆ expected() [2/7]

template<typename T , typename E >
constexpr expected ( expected< T, E > const rhs)
constexprdefault
Postcondition
rhs.has_value() == this->has_value()

◆ expected() [3/7]

template<typename T , typename E >
constexpr expected ( expected< T, E > const rhs)
inlineconstexprnoexcept
Postcondition
rhs.has_value() == this->has_value()

◆ expected() [4/7]

template<typename T , typename E >
constexpr expected ( expected< T, E > &&  rhs)
constexprdefault
Postcondition
rhs.has_value() == this->has_value()

◆ expected() [5/7]

template<typename T , typename E >
constexpr expected ( expected< T, E > &&  rhs)
inlineconstexprnoexcept
Postcondition
rhs.has_value() == this->has_value()

◆ expected() [6/7]

template<typename T , typename E >
template<typename... Args>
requires is_constructible_v<T, Args...>
constexpr expected ( in_place_t  ,
Args &&...  args 
)
inlineexplicitconstexprnoexcept

◆ expected() [7/7]

template<typename T , typename E >
template<typename... Args>
requires is_constructible_v<E, Args...>
constexpr expected ( unexpect_t  ,
Args &&...  args 
)
inlineexplicitconstexprnoexcept

Member Function Documentation

◆ and_then() [1/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<E, decltype(error())>)
constexpr auto and_then ( F &&  f) &
inlineconstexpr

◆ and_then() [2/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<E, decltype(error())>)
constexpr auto and_then ( F &&  f) &&
inlineconstexpr

◆ and_then() [3/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<E, decltype(etl::move(error()))>)
constexpr auto and_then ( F &&  f) const &
inlineconstexpr

◆ and_then() [4/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<E, decltype(etl::move(error()))>)
constexpr auto and_then ( F &&  f) const &&
inlineconstexpr

◆ emplace()

template<typename T , typename E >
template<typename... Args>
requires is_nothrow_constructible_v<T, Args...>
constexpr auto emplace ( Args &&...  args) -> T&
inlineconstexprnoexcept

◆ error() [1/4]

template<typename T , typename E >
constexpr auto error ( ) && -> E&&
inlineconstexpr

◆ error() [2/4]

template<typename T , typename E >
constexpr auto error ( ) & -> E&
inlineconstexpr

◆ error() [3/4]

template<typename T , typename E >
constexpr auto error ( ) const && -> E const&&
inlineconstexpr

◆ error() [4/4]

template<typename T , typename E >
constexpr auto error ( ) const & -> E const&
inlineconstexpr

◆ has_value()

template<typename T , typename E >
constexpr auto has_value ( ) const -> bool
inlineconstexprnoexcept

◆ operator bool()

template<typename T , typename E >
constexpr operator bool ( ) const
inlineexplicitconstexprnoexcept

◆ operator*() [1/4]

template<typename T , typename E >
constexpr auto operator* ( ) && -> T&&
inlineconstexprnoexcept

◆ operator*() [2/4]

template<typename T , typename E >
constexpr auto operator* ( ) & -> T&
inlineconstexprnoexcept

◆ operator*() [3/4]

template<typename T , typename E >
constexpr auto operator* ( ) const && -> T const&&
inlineconstexprnoexcept

◆ operator*() [4/4]

template<typename T , typename E >
constexpr auto operator* ( ) const & -> T const&
inlineconstexprnoexcept

◆ operator->() [1/2]

template<typename T , typename E >
constexpr auto operator-> ( ) const -> T const*
inlineconstexprnoexcept

◆ operator->() [2/2]

template<typename T , typename E >
constexpr auto operator-> ( ) -> T*
inlineconstexprnoexcept

◆ or_else() [1/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<T, decltype(**this)>)
constexpr auto or_else ( F &&  f) &
inlineconstexpr

◆ or_else() [2/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<T, decltype(**this)>)
constexpr auto or_else ( F &&  f) &&
inlineconstexpr

◆ or_else() [3/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<T, decltype(etl::move(**this))>)
constexpr auto or_else ( F &&  f) const &
inlineconstexpr

◆ or_else() [4/4]

template<typename T , typename E >
template<typename F >
requires (is_constructible_v<T, decltype(etl::move(**this))>)
constexpr auto or_else ( F &&  f) const &&
inlineconstexpr

◆ value_or() [1/2]

template<typename T , typename E >
template<typename U >
constexpr auto value_or ( U &&  fallback) && -> T
inlineconstexpr

◆ value_or() [2/2]

template<typename T , typename E >
template<typename U >
constexpr auto value_or ( U &&  fallback) const & -> T
inlineconstexpr

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