Macros

  1. Constrained template macros
  2. Version macros
  3. OUTCOME_CO_TRY(var, expr)

    Evaluate within a coroutine an expression which results in an understood type, assigning T to a decl called var if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  4. OUTCOME_CO_TRYV(expr)/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.

  5. 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.

  6. 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.

  7. OUTCOME_CO_TRYV_FAILURE_LIKELY(expr)/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.

  8. OUTCOME_CO_TRYX(expr)

    Evaluate from within a coroutine an expression which results in an understood type, emitting the T if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  9. OUTCOME_CO_TRYX_FAILURE_LIKELY(expr)

    Evaluate from within a coroutine an expression which results in an understood type, emitting the T if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  10. OUTCOME_CO_TRY_FAILURE_LIKELY(var, expr)

    Evaluate within a coroutine an expression which results in an understood type, assigning T to a decl called var if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  11. OUTCOME_DISABLE_EXECINFO

    If defined, disables the use of the <execinfo.h> header (or the win32 emulation).

  12. OUTCOME_ENABLE_LEGACY_SUPPORT_FOR

    Enables backwards features and naming compatibility for earlier versions of Outcome.

  13. OUTCOME_NODISCARD

    How to tell the compiler than the return value of a function should not be discarded without examining it.

  14. OUTCOME_REQUIRES(...)

    A C++ 20 requires(...), if available.

  15. OUTCOME_SYMBOL_VISIBLE

    How to mark throwable types as always having default ELF symbol visibility.

  16. OUTCOME_THREAD_LOCAL

    How to mark variables as having thread local storage duration.

  17. OUTCOME_THROW_EXCEPTION(expr)

    How to throw a C++ exception, or equivalent thereof.

  18. OUTCOME_TRY(var, expr)

    Evaluate an expression which results in an understood type, assigning T to a decl called var if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  19. OUTCOME_TRYV(expr)/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.

  20. 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.

  21. 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.

  22. OUTCOME_TRYV_FAILURE_LIKELY(expr)/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.

  23. OUTCOME_TRYX(expr)

    Evaluate an expression which results in an understood type, emitting the T if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  24. OUTCOME_TRYX_FAILURE_LIKELY(expr)

    Evaluate an expression which results in an understood type, emitting the T if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  25. OUTCOME_TRY_FAILURE_LIKELY(var, expr)

    Evaluate an expression which results in an understood type, assigning T to a decl called var if successful, immediately returning try_operation_return_as(X) from the calling function if unsuccessful.

  26. OUTCOME_USE_STD_IN_PLACE_TYPE

    How to implement in_place_type_t<T> and in_place_type<T>.

  27. OUTCOME_USE_STD_IS_NOTHROW_SWAPPABLE

    How to implement is_nothrow_swappable<T>.