std:: unexpected
|
헤더 파일에 정의됨
<exception>
|
||
|
void
unexpected
(
)
;
|
(C++11까지) | |
|
[
[
noreturn
]
]
void
unexpected
(
)
;
|
(C++11에서 사용 중단됨)
(C++17에서 제거됨) |
|
std::unexpected()
는 C++ 런타임이
동적 예외 명세(dynamic exception specification)
를 위반했을 때 호출됩니다: 이 함수의 예외 명세가 해당 유형의 예외를 금지하는 함수에서 예외가 발생한 경우입니다.
std::unexpected()
는 프로그램에서 직접 호출될 수도 있습니다.
어떤 경우든,
std::unexpected
는 현재 설치된
std::unexpected_handler
를 호출합니다. 기본
std::unexpected_handler
는
std::terminate
를 호출합니다.
|
만약 소멸자가 스택 풀기(stack unwinding) 도중 unexpected 핸들러를 재설정하고, 이후 풀기 과정에서
|
(C++11까지) |
|
만약 소멸자가 스택 풀기(stack unwinding) 도중 unexpected 핸들러를 재설정하면, 이후 풀기 과정에서
|
(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) |