std::unexpected
출처 ko.cppreference.net
| 헤더에 정의됨 <exception>
|
||
void unexpected();
|
(C++11까지) | |
[[noreturn]] void unexpected();
|
(C++11부터) (C++17까지) (C++11에서 비권장됨) |
|
std::unexpected()는 C++ 런타임이 다음 경우에 호출됩니다: 동적 예외 명세가 위반될 때 호출됩니다: 예외 명세가 이 유형의 예외를 금지하는 함수에서 예외가 발생한 경우입니다.
std::unexpected()는 프로그램에서 직접 호출될 수도 있습니다.
어느 경우든, std::unexpected는 현재 설치된 std::unexpected_handler. 기본 std::unexpected_handler가 호출합니다 std::terminate.
|
소멸자가 스택 풀기 중에 예상치 못한 핸들러를 재설정하고 나중에 스택 풀기가 |
(C++11까지) |
|
소멸자가 스택 풀기 중에 예상치 못한 핸들러를 재설정한 경우, 나중에 스택 풀기가 |
(C++11부터) |
예외
현재 설치된 std::unexpected_handler 가 던지는 모든 예외를 throw합니다.
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2111 | C++11 |
스택 풀기 중
std::set_unexpected
호출의 효과가
C++98과 다르며 일부 ABI를 깨뜨림 |
미지정으로 변경 |
참고 항목
|
(C++23)
|
예상치 못한 값으로 표현됨
(클래스 템플릿) |
|
(C++11에서 사용 중단됨)
(C++17에서 제거됨)
|
std::unexpected
에 의해 호출되는 함수의 타입
(typedef) |