最終更新日時: 2025年02月18日 15時53分36秒 (JST)
Akira Takahashi が更新

履歴 編集

# throw()による例外送出しない指定を削除 [P0619R4](C++20)

このページはC++20に採用された言語機能の変更を解説しています。

のちのC++規格でさらに変更される場合があるため関連項目を参照してください。

## 概要

C++11で例外送出しないことを指定する`noexcept`が追加されたことによって古い例外仕様は非推奨化の後に削除されたが、なにも例外送出しないことを表す`throw()`指定は`noexcept`と同じ意味になるよう仕様が変更されて非推奨機能として維持されていた。

    void f() throw();
    // 以下と同じ意味
    // void f() noexcept;

C++20では、非推奨とされていた`throw()`指定の機能を削除する。代わりに`noexcept`を使用すること。

## 関連項目

- C++11 noexcept
- C++17 非推奨だった古い例外仕様を削除

## 参照

- P0619R4 Reviewing Deprecated Facilities of C++17 for C++20