Observers

`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 where possible. Requires: Always available. Complexity: Constant time. Guarantees: Never throws an exception. »

`static bool _has_exception(Impl &&) noexcept`

Returns true if an exception is present in the implementation passed in. Constexpr where possible. Requires: Always available. Complexity: Constant time. Guarantees: Never throws an exception. »

`static bool _has_value(Impl &&) noexcept`

Returns true if a value is present in the implementation passed in. Constexpr where possible. Requires: Always available. Complexity: Constant time. Guarantees: Never throws an exception. »

`value_type &&assume_value() && noexcept`

Narrow contract rvalue reference observer of any value present. NoValuePolicy::narrow_value_check() is first invoked, then the reference to the value is returned. The convention is that hard undefined behaviour occurs if no value is actually present, however NoValuePolicy::narrow_value_check() can do something to avoid that. Note that if value_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::narrow_value_check(). Guarantees: An exception is never thrown. »

`value_type &&assume_value() && noexcept`

Narrow contract rvalue reference observer of any value present. NoValuePolicy::narrow_value_check() is first invoked, then the reference to the value is returned. The convention is that hard undefined behaviour occurs if no value is actually present, however NoValuePolicy::narrow_value_check() can do something to avoid that. Note that if value_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::narrow_value_check(). Guarantees: An exception is never thrown. »

`value_type &&value() &&`

Wide contract rvalue reference observer of any value present. NoValuePolicy::wide_value_check() is first invoked, then the reference to the value is returned. Note that if value_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::wide_value_check(). Guarantees: None. »

`value_type &&value() &&`

Wide contract rvalue reference observer of any value present. NoValuePolicy::wide_value_check() is first invoked, then the reference to the value is returned. Note that if value_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::wide_value_check(). Guarantees: None. »

`value_type &assume_value() & noexcept`

Narrow contract lvalue reference observer of any value present. NoValuePolicy::narrow_value_check() is first invoked, then the reference to the value is returned. The convention is that hard undefined behaviour occurs if no value is actually present, however NoValuePolicy::narrow_value_check() can do something to avoid that. Note that if value_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::narrow_value_check(). Guarantees: An exception is never thrown. »

`value_type &assume_value() & noexcept`

Narrow contract lvalue reference observer of any value present. NoValuePolicy::narrow_value_check() is first invoked, then the reference to the value is returned. The convention is that hard undefined behaviour occurs if no value is actually present, however NoValuePolicy::narrow_value_check() can do something to avoid that. Note that if value_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::narrow_value_check(). Guarantees: An exception is never thrown. »

`value_type &value() &`

Wide contract lvalue reference observer of any value present. NoValuePolicy::wide_value_check() is first invoked, then the reference to the value is returned. Note that if value_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::wide_value_check(). Guarantees: None. »