API reference
-
Macros
- Constrained template macros
- Version macros
-
BOOST_OUTCOME_CO_TRY(var, expr)Evaluate within a coroutine an expression which results in an understood type, assigning
Tto a decl calledvarif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_CO_TRYV(expr)/BOOST_OUTCOME_CO_TRY(expr)Evaluate from within a coroutine an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_CO_TRYV2(spec, expr)Evaluate an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_CO_TRYV2_FAILURE_LIKELY(spec, expr)Evaluate an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_CO_TRYV_FAILURE_LIKELY(expr)/BOOST_OUTCOME_CO_TRY_FAILURE_LIKELY(expr)Evaluate from within a coroutine an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_CO_TRYX(expr)Evaluate from within a coroutine an expression which results in an understood type, emitting the
Tif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_CO_TRYX_FAILURE_LIKELY(expr)Evaluate from within a coroutine an expression which results in an understood type, emitting the
Tif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_CO_TRY_FAILURE_LIKELY(var, expr)Evaluate within a coroutine an expression which results in an understood type, assigning
Tto a decl calledvarif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_DISABLE_EXECINFOIf defined, disables the use of the
<execinfo.h>header (or the win32 emulation). -
BOOST_OUTCOME_ENABLE_LEGACY_SUPPORT_FOREnables backwards features and naming compatibility for earlier versions of Outcome.
-
BOOST_OUTCOME_NODISCARDHow to tell the compiler than the return value of a function should not be discarded without examining it.
-
BOOST_OUTCOME_REQUIRES(...)A C++ 20
requires(...), if available. -
BOOST_OUTCOME_SYMBOL_VISIBLEHow to mark throwable types as always having default ELF symbol visibility.
-
BOOST_OUTCOME_THREAD_LOCALHow to mark variables as having thread local storage duration.
-
BOOST_OUTCOME_THROW_EXCEPTION(expr)How to throw a C++ exception, or equivalent thereof.
-
BOOST_OUTCOME_TRY(var, expr)Evaluate an expression which results in an understood type, assigning
Tto a decl calledvarif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_TRYV(expr)/BOOST_OUTCOME_TRY(expr)Evaluate an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_TRYV2(spec, expr)Evaluate an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_TRYV2_FAILURE_LIKELY(spec, expr)Evaluate an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_TRYV_FAILURE_LIKELY(expr)/BOOST_OUTCOME_TRY_FAILURE_LIKELY(expr)Evaluate an expression which results in an understood type, continuing execution if successful, immediately returning
try_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_TRYX(expr)Evaluate an expression which results in an understood type, emitting the
Tif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_TRYX_FAILURE_LIKELY(expr)Evaluate an expression which results in an understood type, emitting the
Tif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_TRY_FAILURE_LIKELY(var, expr)Evaluate an expression which results in an understood type, assigning
Tto a decl calledvarif successful, immediately returningtry_operation_return_as(X)from the calling function if unsuccessful. -
BOOST_OUTCOME_USE_STD_IN_PLACE_TYPEHow to implement
in_place_type_t<T>andin_place_type<T>. -
BOOST_OUTCOME_USE_STD_IS_NOTHROW_SWAPPABLEHow to implement
is_nothrow_swappable<T>.
-
Concepts
-
basic_outcome<T>A boolean concept matching types which are convertible to a
basic_outcome<T, EC, EP, NoValuePolicy>. -
basic_result<T>A boolean concept matching types which are convertible to a
basic_result<T, E, NoValuePolicy>. -
value_or_error<T>A boolean concept matching types with either a value or an error.
-
value_or_none<T>A boolean concept matching types with an optional value.
-
-
Converters
-
value_or_error<T, U>A customisable converter of
value_or_error<T, E>concept matching types.
-
-
Traits
-
is_basic_outcome<T>An integral constant type true for
basic_outcome<T, EC, EP, NoValuePolicy>types. -
is_basic_result<T>An integral constant type true for
basic_result<T, E, NoValuePolicy>types. -
is_error_code_available<T>True if an error code can be constructed from a
T. -
is_error_type<E>A customisable integral constant type true for
Etypes which are to receive error throwing no-value policies. -
is_error_type_enum<E, Enum>A customisable integral constant type true for
Etypes constructible fromEnumtypes which are to receive error throwing no-value policies. -
is_exception_ptr_available<T>True if an exception ptr can be constructed from a
T. -
is_failure_type<T>An integral constant boolean variable true for
failure_type<EC, E = void>types. -
is_move_bitcopying<T>(>= Outcome v2.2.0) A customisable integral constant type true for
Ttypes which are move bitcopying safe. -
is_success_type<T>An integral constant boolean variable true for
success_type<T>types. -
type_can_be_used_in_basic_result<R>A constexpr boolean true for types permissible in
basic_result<T, E, NoValuePolicy>.
-
-
Policies
-
baseBase class of most policy classes defining the narrow observer policies.
-
all_narrowPolicy class defining that hard undefined behaviour should occur on incorrect narrow and wide value, error or exception observation. Inherits publicly from
base. -
error_code_throw_as_system_error<T, EC, EP>Policy class defining that
EPought to be rethrown if possible, then the ADL discovered free functionoutcome_throw_as_system_error_with_payload()should be called on incorrect wide value observation. Inherits publicly frombase. Can only be used withbasic_outcome. -
error_code_throw_as_system_error<T, EC, void>Policy class defining that the ADL discovered free function
outcome_throw_as_system_error_with_payload()should be called on incorrect wide value observation. Inherits publicly frombase. Can only be used withbasic_result. -
exception_ptr_rethrow<T, EC, EP>Policy class defining that the ADL discovered free function
rethrow_exception()should be called on incorrect wide value observation. Inherits publicly frombase. Can only be used withbasic_outcome. -
exception_ptr_rethrow<T, EC, void>Policy class defining that the ADL discovered free function
rethrow_exception()should be called on incorrect wide value observation. Inherits publicly frombase. Can only be used withbasic_result. -
fail_to_compile_observersPolicy class defining that a static assertion should occur upon compilation of the wide value, error or exception observation. Inherits publicly from
base. -
terminatePolicy class defining that
std::terminate()should be called on incorrect wide value, error or exception observation. Inherits publicly frombase. -
throw_bad_result_access<EC>Policy class defining that
bad_result_access_with<EC>should be thrown on incorrect wide value observation. Inherits publicly frombase.
-
-
Types
-
basic_outcome<T, EC, EP, NoValuePolicy>A type carrying one of (i) a successful
T(ii) a disappointmentEC(iii) a failureEP(iv) both a disappointmentECand a failureEP, withNoValuePolicyspecifying what to do if one tries to read state which isn’t there. -
basic_result<T, E, NoValuePolicy>A sum type carrying either a successful
T, or a disappointmentE, withNoValuePolicyspecifying what to do if one tries to read state which isn’t there. -
bad_outcome_accessException type publicly inheriting from
std::logic_errorindicating an incorrect observation of value or error or exception occurred. -
bad_result_access_with<EC>Exception type publicly inheriting from
bad_result_accessindicating an incorrect observation of value occurred, supplying the error value. -
bad_result_accessException type publicly inheriting from
std::logic_errorindicating an incorrect observation of value or error occurred. -
eager<T>/atomic_eager<T>An eagerly evaluated coroutine awaitable with Outcome customisation.
-
failure_type<EC, EP = void>Type sugar for constructing an unsuccessful result or outcome.
-
in_place_type_t<T>Either
std::in_place_type_t<T>or a local emulation, depending on theBOOST_OUTCOME_USE_STD_IN_PLACE_TYPEmacro. -
lazy<T>/atomic_lazy<T>A lazily evaluated coroutine awaitable with Outcome customisation.
-
success_type<T>Type sugar for constructing a successful result or outcome.
-
-
Aliases
-
boost_checked<T, E = boost::system::error_code>A type alias to a
basic_resultconfigured withboost::system::error_codeandpolicy::throw_bad_result_access<EC>. -
boost_outcome<T, EC = boost::system::error_code, EP = boost::exception_ptr, NoValuePolicy = policy::default_policy<T, EC, EP>>A type alias to a
basic_outcomeconfigured withboost::system::error_code,boost::exception_ptrandpolicy::default_policy. -
boost_result<T, E = boost::system::error_code, NoValuePolicy = policy::default_policy<T, E, void>>A type alias to a
basic_resultconfigured withboost::system::error_codeandpolicy::default_policy. -
boost_unchecked<T, E = boost::system::error_code>A type alias to a
basic_resultconfigured withboost::system::error_codeandpolicy::all_narrow. -
checked<T, E = varies>A type alias to a
std_checked<T, E>(standalone edition) orboost_checked<T, E>(Boost edition). -
default_policy<T, EC, EP>A type alias to a no-value policy selected based on traits matching of
T,ECandEP. -
outcome<T, EC = varies, EP = varies, NoValuePolicy = policy::default_policy<T, EC, EP>>A type alias to a
std_outcome<T, EC, EP, NoValuePolicy>(standalone edition) orboost_outcome<T, EC, EP, NoValuePolicy>(Boost edition). -
result<T, E = varies, NoValuePolicy = policy::default_policy<T, E, void>>A type alias to a
std_result<T, E, NoValuePolicy>(standalone edition) orboost_result<T, E, NoValuePolicy>(Boost edition). -
std_checked<T, E = std::error_code>A type alias to a
basic_resultconfigured withstd::error_codeandpolicy::throw_bad_result_access<EC>. -
std_outcome<T, EC = std::error_code, EP = std::exception_ptr, NoValuePolicy = policy::default_policy<T, EC, EP>>A type alias to a
basic_outcomeconfigured withstd::error_code,std::exception_ptrandpolicy::default_policy. -
std_result<T, E = std::error_code, NoValuePolicy = policy::default_policy<T, E, void>>A type alias to a
basic_resultconfigured withstd::error_codeandpolicy::default_policy. -
std_unchecked<T, E = std::error_code>A type alias to a
basic_resultconfigured withstd::error_codeandpolicy::all_narrow. -
unchecked<T, E = varies>A type alias to a
std_unchecked<T, E>(standalone edition) orboost_unchecked<T, E>(Boost edition).
-
-
Functions
-
Hooks
Functions used to hook into the functionality of
basic_resultandbasic_outcome. -
Iostream
Functions used to print, serialise and deserialise
basic_resultandbasic_outcome. -
Policy
Functions used to customise how the policy classes operate.
-
auto failure(T &&, ...)Returns appropriate type sugar for constructing an unsuccessful result or outcome.
-
auto success(T &&, ...)Returns appropriate type sugar for constructing a successful result or outcome.
-
bool try_operation_has_value(X)Default implementation of
try_operation_has_value(X)ADL customisation point forBOOST_OUTCOME_TRY. -
decltype(auto) try_operation_extract_value(X)Default implementation of
try_operation_extract_value(X)ADL customisation point forBOOST_OUTCOME_TRY. -
decltype(auto) try_operation_return_as(X)Default implementation of
try_operation_return_as(X)ADL customisation point forBOOST_OUTCOME_TRY. -
std::error_code error_from_exception(std::exception_ptr &&ep = std::current_exception(), std::error_code not_matched = std::make_error_code(std::errc::resource_unavailable_try_again)) noexceptReturns an error code matching a thrown standard library exception.
-
void strong_swap(bool &all_good, T &a, T &b)Tries to perform a strong guarantee swap.
-
void try_throw_std_exception_from_error(std::error_code ec, const std::string &msg = std::string{})Try to throw a standard library exception type matching an error code.
-
Hooks



