Configuration

Covers optional preprocessor macros that change the libraries behaviour.

By default the library doesn't require any preprocessor definitions to be defined in order to work. However it is possible to define some in order to change the libraries behaviour:

Preprocessor definitionConsequence
CONTINUABLE_WITH_NO_EXCEPTIONSExceptions are disabled and std::error_condition is used as error_type . See Using fail and exceptions for details.
CONTINUABLE_WITH_CUSTOM_ERROR_TYPEExceptions are disabled and the type defined by CONTINUABLE_WITH_CUSTOM_ERROR_TYPE is used as error_type . See Using fail and exceptions for details.
CONTINUABLE_WITH_UNHANDLED_EXCEPTIONSAllows unhandled exceptions in asynchronous call hierarchies. See Using fail and exceptions for details.
CONTINUABLE_WITH_CUSTOM_FINAL_CALLBACKAllows to customize the final callback which can be used to implement custom unhandled asynchronous exception handlers.
CONTINUABLE_WITH_IMMEDIATE_TYPESDon't decorate the used type erasure, which is done to keep type names minimal for better error messages in debug builds.
CONTINUABLE_WITH_EXPERIMENTAL_COROUTINEEnables support for experimental coroutines and co_await expressions. See continuable_base::operator co_await() for details.