If on C++ 20 or the Concepts TS is enabled, a boolean concept matching types with a public
.has_value() observer which returns
bool, a public
.value() observer function, and a public
.error() observer function.
If without Concepts, a static constexpr bool which is true for types matching the same requirements, using a SFINAE based emulation.
This concept matches expected-like types such as
, one of which is
basic_result<T, E, NoValuePolicy>
. Be aware it does not differentiate between value-or-error types and value-and-error types if they present the interface matched above.
Legacy: This was named
convert::ValueOrError<T> in Outcome v2.1 and earlier. Define
to less than
220 to enable.