namespace std {
class contract_violation {
public:
uint_least32_t line_number() const noexcept;
string_view file_name() const noexcept;
string_view function_name() const noexcept;
string_view comment() const noexcept;
string_view assertion_level() const noexcept;
};
}
概要
contract_violation
クラスは、発生した契約違反に関する情報を提供する。
契約違反が発生したとき、このクラスのオブジェクトが処理系定義の方法により構築され、違反ハンドラーに渡される。
違反ハンドラーはvoid(const std::contract_violation&) noexcept
またはvoid(const std::contract_violation&)
の型を持つ関数であり、
処理系定義の方法によって指定される。
メンバ関数
名前 | 説明 | 対応バージョン |
---|---|---|
line_number |
契約違反が発生したソースコード上の行番号 | C++ (将来) |
file_name |
契約違反が発生したソースコードのファイル名 | C++ (将来) |
function_name |
契約違反が発生した関数の名前 | C++ (将来) |
comment |
契約違反の原因となった述語を説明する処理系定義のテキスト | C++ (将来) |
assertion_level |
違反した契約のアサーションレベル | C++ (将来) |
例
(執筆中)
出力
(執筆中)
バージョン
言語
- C++ (将来)
処理系
- Clang: 未実装
- GCC: 未実装
- ICC: ?
- Visual C++: 未実装