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 variable 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_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.

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

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

  8. OUTCOME_CO_TRY_FAILURE_LIKELY(var, expr)

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

  9. OUTCOME_DISABLE_EXECINFO

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

  10. OUTCOME_NODISCARD

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

  11. OUTCOME_REQUIRES(...)

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

  12. OUTCOME_SYMBOL_VISIBLE

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

  13. OUTCOME_THREAD_LOCAL

    How to mark variables as having thread local storage duration.

  14. OUTCOME_THROW_EXCEPTION(expr)

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

  15. OUTCOME_TRY(var, expr)

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

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

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

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

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

  20. OUTCOME_TRY_FAILURE_LIKELY(var, expr)

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

  21. OUTCOME_USE_STD_IN_PLACE_TYPE

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

  22. OUTCOME_USE_STD_IS_NOTHROW_SWAPPABLE

    How to implement is_nothrow_swappable<T>.