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

  1. static void _ub(Impl &&)

    Special function which causes noticeable hard undefined behaviour.

Observers

  1. static bool _has_value(Impl &&) noexcept

    Returns true if a value is present in the implementation passed in. Constexpr, never throws.

  2. static bool _has_error(Impl &&) noexcept

    Returns true if an error is present in the implementation passed in. Constexpr, never throws.

  3. static bool _has_exception(Impl &&) noexcept

    Returns true if an exception is present in the implementation passed in. Constexpr, never throws.

  4. 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.

  5. static auto &&_value(Impl &&) noexcept

    Returns a reference to the value in the implementation passed in. Constexpr, never throws.

  6. static auto &&_error(Impl &&) noexcept

    Returns a reference to the error in the implementation passed in. Constexpr, never throws.

  7. static auto &&_exception(Impl &&) noexcept

    Returns a reference to the exception in the implementation passed in. Constexpr, never throws.

Modifiers

  1. static void _set_has_value(Impl &&, bool) noexcept

    Sets whether the implementation has a value. Constexpr, never throws.

  2. static void _set_has_error(Impl &&, bool) noexcept

    Sets whether the implementation has an error. Constexpr, never throws.

  3. static void _set_has_exception(Impl &&, bool) noexcept

    Sets whether the implementation has an exception. Constexpr, never throws.

  4. 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

  1. static void narrow_value_check(Impl &&) noexcept

    Observer policy performing hard UB if no value is present. Constexpr, never throws.

  2. static void narrow_error_check(Impl &&) noexcept

    Observer policy performing hard UB if no error is present. Constexpr, never throws.

  3. static void narrow_exception_check(Impl &&) noexcept

    Observer policy performing hard UB if no exception is present. Constexpr, never throws.