Macros - Boost.Outcome documentation

# Macros

1. Constrained template macros
2. Version macros
3. `BOOST_OUTCOME_DISABLE_EXECINFO`

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

4. `BOOST_OUTCOME_NODISCARD`

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

5. `BOOST_OUTCOME_REQUIRES(...)`

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

6. `BOOST_OUTCOME_SYMBOL_VISIBLE`

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

7. `BOOST_OUTCOME_THREAD_LOCAL`

   How to mark variables as having thread local storage duration.

8. `BOOST_OUTCOME_THROW_EXCEPTION(expr)`

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

9. `BOOST_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.

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

11. `BOOST_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.

12. `BOOST_OUTCOME_USE_STD_IN_PLACE_TYPE`

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

13. `BOOST_OUTCOME_USE_STD_IS_NOTHROW_SWAPPABLE`

    How to implement `is_nothrow_swappable<T>`.

Last revised: December 10, 2018 at 20:32:00 UTC