success_type<T>
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
. It also has an optional parameter spare_storage
, if you wish to specify a spare storage value.
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.
There is a .spare_storage()
observer which returns the spare storage value with which the success type sugar was constructed.
Requires: Nothing.
Namespace: OUTCOME_V2_NAMESPACE
Header: <outcome/success_failure.hpp>