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 >)
 
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

template<typename T, typename E>
using unexpected_type = etl::unexpected<E>

◆ value_type

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

Constructor & Destructor Documentation

◆ expected() [1/3]

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

◆ expected() [2/3]

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

◆ expected() [3/3]

template<typename T, typename E>
template<typename... Args>
requires is_constructible_v<E, Args...>
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())>)
auto and_then ( F && f) &
inlinenodiscardconstexpr

◆ and_then() [2/4]

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

◆ and_then() [3/4]

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

◆ and_then() [4/4]

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

◆ emplace()

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

◆ error() [1/4]

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

◆ error() [2/4]

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

◆ error() [3/4]

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

◆ error() [4/4]

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

◆ has_value()

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

◆ operator bool()

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

◆ operator*() [1/4]

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

◆ operator*() [2/4]

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

◆ operator*() [3/4]

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

◆ operator*() [4/4]

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

◆ operator->() [1/2]

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

◆ operator->() [2/2]

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

◆ or_else() [1/4]

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

◆ or_else() [2/4]

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

◆ or_else() [3/4]

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

◆ or_else() [4/4]

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

◆ value_or() [1/2]

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

◆ value_or() [2/2]

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

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