A type that describes a pointer to an exception.
typedef unspecified exception_ptr;
An unspecified internal class that is used to implement the
exception_ptr object to reference the current exception or an instance of a user-specified exception. In the Microsoft implementation, an exception is represented by an EXCEPTION_RECORD structure. Each
exception_ptr object includes an exception reference field that points to a copy of the
EXCEPTION_RECORD structure that represents the exception.
When you declare an
exception_ptr variable, the variable is not associated with any exception. That is, its exception reference field is NULL. Such an
exception_ptr object is called a null exception_ptr.
make_exception_ptr function to assign an exception to an
exception_ptr object. When you assign an exception to an
exception_ptr variable, the variable's exception reference field points to a copy of the exception. If there is insufficient memory to copy the exception, the exception reference field points to a copy of a std::bad_alloc exception. If the
make_exception_ptr function cannot copy the exception for any other reason, the function calls the
terminate CRT function to exit the current process.
Despite its name, an
exception_ptr object is not itself a pointer. It does not obey pointer semantics and cannot be used with the pointer member access (
->) or indirection (*) operators. The
exception_ptr object has no public data members or member functions.
You can use the equal (
==) and not-equal (
!=) operators to compare two
exception_ptr objects. The operators do not compare the binary value (bit pattern) of the
EXCEPTION_RECORD structures that represent the exceptions. Instead, the operators compare the addresses in the exception reference field of the
exception_ptr objects. Consequently, a null
exception_ptr and the NULL value compare as equal.
The type describes a pointer to a function suitable for use as a
typedef void (*terminate_handler)();
The type describes a pointer to a function suitable for use as a terminate handler.
See set_terminate for an example of the use of
The type describes a pointer to a function suitable for use as an
typedef void (*unexpected_handler)();
See set_unexpected for an example of the use of