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.