<exception>
형식 정의
exception_ptr
예외에 대한 포인터를 설명하는 형식입니다.
typedef unspecified exception_ptr;
설명
exception_ptr
형식을 구현하는 데 사용되는 지정되지 않은 내부 클래스입니다.
exception_ptr
개체를 사용하여 현재 예외 또는 사용자 지정 예외의 인스턴스를 참조합니다. Microsoft 구현에서 예외가 EXCEPTION_RECORD 구조체에 의해 표시됩니다. 각 exception_ptr
개체에는 예외를 나타내는 EXCEPTION_RECORD
구조체의 복사본을 가리키는 예외 참조 필드가 포함됩니다.
exception_ptr
변수를 선언할 때 변수는 예외와 관련되지 않습니다. 즉, 해당 예외 참조 필드는 NULL입니다. 이러한 exception_ptr
개체를 null exception_ptr라고 합니다.
current_exception
또는 make_exception_ptr
함수를 사용하여 exception_ptr
개체에 예외를 지정합니다. exception_ptr
변수에 예외를 할당하면, 변수 예외 참조 필드는 예외 복사본을 가리킵니다. 메모리가 부족하여 예외를 복사할 수 없는 경우 예외 참조 필드는 std::bad_alloc 예외의 복사본을 가리킵니다. 또는 함수가 current_exception
다른 이유로 예외를 복사할 수 없는 경우 함수는 CRT 함수를 terminate
호출하여 현재 프로세스를 종료 make_exception_ptr
합니다.
그 이름에도 불구하고 exception_ptr
개체 자체는 포인터가 아닙니다. 포인터 의미 체계를 준수하지 않으며 포인터 멤버 액세스(->
) 또는 간접 참조(*) 연산자와 함께 사용될 수 없습니다. exception_ptr
개체에는 공용 데이터 멤버 또는 멤버 함수가 없습니다.
비교:
등호(==
) 및 부등호(!=
) 연산자를 사용하여 두 개의 exception_ptr
개체를 비교할 수 있습니다. 연산자는 예외를 나타내는 EXCEPTION_RECORD
구조의 이진 값(비트 패턴)을 비교하지 않습니다. 대신, 연산자는 exception_ptr
개체의 예외 참조 필드 주소를 비교합니다. 따라서 null exception_ptr
과 NULL 값이 동일한 것으로 비교됩니다.
terminate_handler
terminate_handler
로 사용하는 데 적합한 함수에 대한 포인터를 설명하는 형식입니다.
typedef void (*terminate_handler)();
설명
이 형식은 종료 처리기로 사용하는 데 적합한 함수의 포인터에 대해 설명합니다.
예시
terminate_handler
사용에 대한 예제는 set_terminate를 참조하세요.
unexpected_handler
이 형식은 unexpected_handler
로 사용하는 데 적합한 함수에 대한 포인터를 설명합니다.
typedef void (*unexpected_handler)();
예시
unexpected_handler
사용에 대한 예제는 set_unexpected를 참조하세요.