|
constexpr | Expected () |
|
template<typename... Args>
requires (!std::is_void_v<T> && std::constructible_from<ExpectedT, Args...>) |
constexpr | Expected (std::in_place_t, Args &&... args) |
|
template<typename Tu >
requires (!std::is_void_v<T> && std::convertible_to<Tu, T>) |
constexpr | Expected (Tu &&value) |
|
template<typename Eu >
requires (std::convertible_to<Eu, E> && !std::is_convertible_v<T, E> && !std::is_convertible_v<T, E>) |
constexpr | Expected (Eu &&error) |
|
template<typename Eu >
requires (std::convertible_to<Eu, E>) |
constexpr | Expected (UnexpectedT, Eu &&error) |
|
constexpr void | assert_val () |
|
constexpr bool | has_value () const |
|
constexpr bool | has_error () const |
|
constexpr | operator bool () const |
|
template<typename U = T>
requires (!std::is_void_v<U>) |
constexpr U & | value () |
|
template<typename U = T>
requires (!std::is_void_v<U>) |
constexpr const U & | value () const |
|
template<typename U = T>
requires (std::is_void_v<U>) |
constexpr void | value () const |
|
template<typename U = T>
requires (!std::is_void_v<U>) |
constexpr U & | operator* () |
|
template<typename U = T>
requires (!std::is_void_v<U>) |
constexpr const U & | operator* () const |
|
template<typename U = T>
requires (!std::is_void_v<U>) |
constexpr U * | operator-> () |
|
template<typename U = T>
requires (!std::is_void_v<U>) |
constexpr const U * | operator-> () const |
|
template<typename Tu >
requires (std::convertible_to<Tu, T>) |
constexpr T | value_or (Tu &&default_value) const |
|
constexpr E | error () const |
|
template<typename Eu > |
constexpr E | error_or (Eu &&default_value) const |
|
template<typename Func > |
constexpr Expected< std::invoke_result_t< Func, T >, E > | transform (const Func &func) |
|
constexpr auto | operator<=> (const Expected &rhs) const =default |
|
constexpr bool | operator== (const Expected &rhs) const |
|
template<typename Tu >
requires (!std::is_void_v<T> && !std::same_as<Tu, Expected> && std::equality_comparable_with<Tu, T>) |
constexpr bool | operator== (const Tu &rhs) const |
|
template<typename Eu >
requires (!std::same_as<Eu, Expected> && std::equality_comparable_with<Eu, E>) |
constexpr bool | operator== (const Eu &rhs) const |
|
template<typename T = void, typename E = std::error_code>
class asmgrader::Expected< T, E >
std::variant wrapper for a partial implementation of C++23's expected type
- Template Parameters
-
T | The expected value type |
E | The error type |
Note: types T and E must not be convertible between one another.