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.

  4. static void on_outcome_construction(T *, U &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the implicit constructors of basic_outcome.

  5. static void on_outcome_construction(T *, U &&, V &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the implicit constructors of basic_outcome.

  6. static void on_outcome_copy_construction(T *, U &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the converting copy constructors of basic_outcome.

  7. static void on_outcome_copy_construction(T *, U &&, V &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the converting copy constructors of basic_outcome.

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

  9. static void on_outcome_move_construction(T *, U &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the converting move constructors of basic_outcome.

  10. static void on_outcome_move_construction(T *, U &&, V &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the converting move constructors of basic_outcome.

  11. static void on_result_construction(T *, U &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the implicit constructors of basic_result.

  12. static void on_result_copy_construction(T *, U &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the converting copy constructors of basic_result.

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

  14. static void on_result_move_construction(T *, U &&) noexcept

    (>= Outcome v2.2.0) Hook invoked by the converting move constructors of basic_result.