std::exception_ptr (3) - Linux Manuals
std::exception_ptr: std::exception_ptr
NAME
std::exception_ptr - std::exception_ptr
Synopsis
Defined in header <exception>
typedef /*unspecified*/ exception_ptr; (since C++11)
std::exception_ptr is a nullable pointer-like type that manages an exception object which has been thrown and captured with std::current_exception. An instance of std::exception_ptr may be passed to another function, possibly on another thread, where the exception may be rethrown and handled with a catch clause.
A default-constructed std::exception_ptr is a null pointer; it does not point to an exception object.
Two instances of std::exception_ptr compare equal only if they are both null or both point at the same exception object.
std::exception_ptr is not implicitly convertible to any arithmetic, enumeration, or pointer type. It is contextually convertible to bool, and will evaluate to false if it is null, true otherwise.
The exception object referenced by an std::exception_ptr remains valid as long as there remains at least one std::exception_ptr that is referencing it: std::exception_ptr is a shared-ownership smart pointer (note; this is in addition to the usual exception_object_lifetime_rules)
std::exception_ptr meets the requirements of NullablePointer.
Example
// Run this code
Output:
See also
make_exception_ptr creates an std::exception_ptr from an exception object
(C++11)
current_exception captures the current exception in a std::exception_ptr
(C++11)
rethrow_exception throws the exception from an std::exception_ptr
(C++11)