std:: unexpected
|
ヘッダーで定義
<exception>
|
||
|
void
unexpected
(
)
;
|
(C++11まで) | |
|
[
[
noreturn
]
]
void
unexpected
(
)
;
|
(C++11で非推奨)
(C++17で削除) |
|
std::unexpected()
は、C++ランタイムによって
動的例外仕様
が違反されたときに呼び出されます:例外が、その例外仕様によってこの型の例外を禁止している関数からスローされた場合です。
std::unexpected()
はプログラムから直接呼び出されることもあります。
どちらの場合でも、
std::unexpected
は現在インストールされている
std::unexpected_handler
を呼び出します。デフォルトの
std::unexpected_handler
は
std::terminate
を呼び出します。
|
デストラクタがスタックアンワインディング中にunexpectedハンドラをリセットし、そのアンワインディングが後に
|
(C++11まで) |
|
デストラクタがスタックアンワインディング中にunexpectedハンドラをリセットした場合、そのアンワインディングが後に
|
(C++11以降) |
例外
現在インストールされている std::unexpected_handler によってスローされる例外をスローします。
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 2111 | C++11 |
スタックアンワインディング中に
std::set_unexpected
を呼び出した場合の効果が
C++98と異なり、一部のABIを破壊する |
未規定とする |
関連項目
|
(C++23)
|
予期しない値として表現される
(クラステンプレート) |
|
(C++11で非推奨)
(C++17で削除)
|
std::unexpected
によって呼び出される関数の型
(typedef) |