通常、C++03 までのデストラクタは、任意の例外をスローすることが許可されていました。
ただし、C++11 では、明示的な例外指定のないすべてのデストラクタがnoexceptデフォルトになりました。これはオーバーライドできますnoexcept(false)が、このコードは C++11 より前のコンパイラでは受け入れられません。
noexcept(false)1 つの解決策は、コンパイラ固有の s をチェックすることによっての必要性を検出することです#defineが、これでも既知のコンパイラ セットに対するそのようなコードの適用可能性は制限されます。
С++11 と C++03 の両方でデストラクタから任意の例外をスローできる移植可能な方法はありますか?