Type sugar for constructing a successful result or outcome. Generally not constructed directly, but via the free function success(T &&) . Detectable using is_success_type<T> .

This is a regular wrapper type, with defaulted default, copy and move constructor, defaulted assignment, and defaulted destructor.

A member type alias value_type indicates T.

There is an explicit initialising constructor taking any type U which is not a success_type<T>, and which will forward construct the contained T from that U.

There is a .value() reference observer with the usual constexpr lvalue, const lvalue, rvalue and const rvalue overloads.

There is a specialisation success_type<void> which stores nothing and provides no .value() observers.

Requires: Nothing.


Header: <outcome/success_failure.hpp>