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