より効果的な C++で、Scott Meyers は言います
C++ は、例外としてスローされたオブジェクトがコピーされることを指定します。
次に、コピー コンストラクターが順番に例外をスローすると、std::terminateが呼び出されるので、これがすべての例外のコピー コンストラクターを宣言する正当な理由になるnoexceptと思います (また、ヒープからメモリを割り当てるオブジェクトをスローしないように、のようにstd::string)。
std::bad_allocしかし、GCC 4.7.1 に同梱されている標準ライブラリの実装では、とのコピー コンストラクタが定義されていないことに驚きましたstd::exception。彼らはそれらを定義すべきではありませんnoexceptか?