Observers

`const exception_type &assume_exception() const & noexcept`

Narrow contract const lvalue reference observer of the stored exception. NoValuePolicy::narrow_exception_check() is first invoked, then the reference to the exception is returned. As a valid default constructed exception is always present, no undefined behaviour occurs unless NoValuePolicy::narrow_exception_check() does that. Note that if exception_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::narrow_exception_check(). Guarantees: An exception is never thrown. »

`const exception_type &exception() const &`

Wide contract const lvalue reference observer of the stored exception. NoValuePolicy::wide_exception_check() is first invoked, then the reference to the exception is returned. As a valid default constructed exception is always present, no undefined behaviour occurs if NoValuePolicy::wide_exception_check() returns. Note that if exception_type is void, only a const overload returning void is present. Requires: Always available. Complexity: Depends on NoValuePolicy::wide_exception_check(). Guarantees: None. »

`const value_type &&assume_value() const && noexcept`

Narrow contract const 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. »

`const value_type &&assume_value() const && noexcept`

Narrow contract const 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. »

`const value_type &&value() const &&`

Wide contract const 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. »

`const value_type &&value() const &&`

Wide contract const 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. »

`const value_type &assume_value() const & noexcept`

Narrow contract const 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. »

`const value_type &assume_value() const & noexcept`

Narrow contract const 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. »

`const value_type &value() const &`

Wide contract const 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. »

`const value_type &value() const &`

Wide contract const 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. »