Navigation :
Prerequisites
Build and install
Review of Error Handling Frameworks
Motivation
Future ABI stability guarantees
Tutorial
Recipes
Experimental
API reference
-
Macros
-- Constrained template macros
-- Version macros
-- `OUTCOME_CO_TRY(var, expr)`
-- `OUTCOME_CO_TRYV(expr)/OUTCOME_CO_TRY(expr)`
-- `OUTCOME_CO_TRYV2(spec, expr)`
-- `OUTCOME_CO_TRYV2_FAILURE_LIKELY(spec, expr)`
-- `OUTCOME_CO_TRYV_FAILURE_LIKELY(expr)/OUTCOME_CO_TRY_FAILURE_LIKELY(expr)`
-- `OUTCOME_CO_TRYX(expr)`
-- `OUTCOME_CO_TRYX_FAILURE_LIKELY(expr)`
-- `OUTCOME_CO_TRY_FAILURE_LIKELY(var, expr)`
-- `OUTCOME_DISABLE_EXECINFO`
-- `OUTCOME_ENABLE_LEGACY_SUPPORT_FOR`
-- `OUTCOME_NODISCARD`
-- `OUTCOME_REQUIRES(...)`
-- `OUTCOME_SYMBOL_VISIBLE`
-- `OUTCOME_THREAD_LOCAL`
-- `OUTCOME_THROW_EXCEPTION(expr)`
-- `OUTCOME_TRY(var, expr)`
-- `OUTCOME_TRYV(expr)/OUTCOME_TRY(expr)`
-- `OUTCOME_TRYV2(spec, expr)`
-- `OUTCOME_TRYV2_FAILURE_LIKELY(spec, expr)`
-- `OUTCOME_TRYV_FAILURE_LIKELY(expr)/OUTCOME_TRY_FAILURE_LIKELY(expr)`
-- `OUTCOME_TRYX(expr)`
-- `OUTCOME_TRYX_FAILURE_LIKELY(expr)`
-- `OUTCOME_TRY_FAILURE_LIKELY(var, expr)`
-- `OUTCOME_USE_STD_IN_PLACE_TYPE`
-- `OUTCOME_USE_STD_IS_NOTHROW_SWAPPABLE`
-
Concepts
-
Converters
-
Traits
-
Policies
-
Types
-
Aliases
-
Functions
Frequently asked questions
Videos
Changelog
History
OUTCOME_NODISCARD
Compiler-specific markup used to tell the compiler than the return value of a function should not be discarded without examining it.
Overridable : Define before inclusion.
Default : To [[nodiscard]]
if on C++ 17 or higher, __attribute__((warn_unused_result))
if on clang, SAL _Must_inspect_result_
if on MSVC, otherwise nothing.
Header : <outcome/config.hpp>