1+++ 2title = "`const value_type &assume_value() const & noexcept`" 3description = "Narrow contract const lvalue reference observer of any value present. Constexpr propagating, never throws." 4categories = ["observers"] 5weight = 610 6+++ 7 8Narrow 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. 9 10Note that if `value_type` is `void`, only a `const` overload returning `void` is present. 11 12*Requires*: Always available. 13 14*Complexity*: Depends on `NoValuePolicy::narrow_value_check()`. 15 16*Guarantees*: An exception is never thrown. 17