base
Implements the base class of most policy classes defining the narrow observer policies.
Requires: Nothing.
Namespace: OUTCOME_V2_NAMESPACE::policy
Header: <outcome/policy/base.hpp>
Protected member functions
Special
-
static void _ub(Impl &&)
Special function which causes noticeable hard undefined behaviour.
Observers
-
static bool _has_value(Impl &&) noexcept
Returns true if a value is present in the implementation passed in. Constexpr, never throws.
-
static bool _has_error(Impl &&) noexcept
Returns true if an error is present in the implementation passed in. Constexpr, never throws.
-
static bool _has_exception(Impl &&) noexcept
Returns true if an exception is present in the implementation passed in. Constexpr, never throws.
-
static bool _has_error_is_errno(Impl &&) noexcept
Returns true if the error code in the implementation passed in has a domain or category matching that of POSIX
errno
. Constexpr, never throws. -
static auto &&_value(Impl &&) noexcept
Returns a reference to the value in the implementation passed in. Constexpr, never throws.
-
static auto &&_error(Impl &&) noexcept
Returns a reference to the error in the implementation passed in. Constexpr, never throws.
-
static auto &&_exception(Impl &&) noexcept
Returns a reference to the exception in the implementation passed in. Constexpr, never throws.
Modifiers
-
static void _set_has_value(Impl &&, bool) noexcept
Sets whether the implementation has a value. Constexpr, never throws.
-
static void _set_has_error(Impl &&, bool) noexcept
Sets whether the implementation has an error. Constexpr, never throws.
-
static void _set_has_exception(Impl &&, bool) noexcept
Sets whether the implementation has an exception. Constexpr, never throws.
-
static void _set_has_exception(Impl &&, bool) noexcept
Sets whether the implementation’s error code has a domain or category matching that of POSIX
errno
. Constexpr, never throws.
Public member functions
-
static void narrow_value_check(Impl &&) noexcept
Observer policy performing hard UB if no value is present. Constexpr, never throws.
-
static void narrow_error_check(Impl &&) noexcept
Observer policy performing hard UB if no error is present. Constexpr, never throws.
-
static void narrow_exception_check(Impl &&) noexcept
Observer policy performing hard UB if no exception is present. Constexpr, never throws.
-
static void on_outcome_construction(T *, U &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the implicit constructors of
basic_outcome
. -
static void on_outcome_construction(T *, U &&, V &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the implicit constructors of
basic_outcome
. -
static void on_outcome_copy_construction(T *, U &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the converting copy constructors of
basic_outcome
. -
static void on_outcome_copy_construction(T *, U &&, V &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the converting copy constructors of
basic_outcome
. -
static void on_outcome_in_place_construction(T *, in_place_type_t<U>, Args &&...) noexcept
(>= Outcome v2.2.0) Hook invoked by the in-place constructors of
basic_outcome
. -
static void on_outcome_move_construction(T *, U &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the converting move constructors of
basic_outcome
. -
static void on_outcome_move_construction(T *, U &&, V &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the converting move constructors of
basic_outcome
. -
static void on_result_construction(T *, U &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the implicit constructors of
basic_result
. -
static void on_result_copy_construction(T *, U &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the converting copy constructors of
basic_result
. -
static void on_result_in_place_construction(T *, in_place_type_t<U>, Args &&...) noexcept
(>= Outcome v2.2.0) Hook invoked by the in-place constructors of
basic_result
. -
static void on_result_move_construction(T *, U &&) noexcept
(>= Outcome v2.2.0) Hook invoked by the converting move constructors of
basic_result
.