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