え、マジ?すげえ!
■ このスレッドは過去ログ倉庫に格納されています
0056デフォルトの名無しさん
NGNG> 余分な引数を付けずに operator new を使用し、/GX、/EHs、または /EHa オプションで
> コンパイルすると、コンストラクタが例外をスローしたときに operator delete を呼び
> 出すコードが生成されます。
なので VC で delete が呼び出されるかどうかはコンパイルオプションに依存。
つまりコンストラクタの例外でメモリ開放を期待する設計は処理系/環境依存の
プログラムになる。
ちなみにこんな記述もある。
> 仮引数付きの new 演算子、つまり割り当てサイズ以外の引数を伴う形式の
> new 演算子を使用すると、コンストラクタが例外をスローしたときに、
> 仮引数付きの delete 演算子が呼び出されません。
■ このスレッドは過去ログ倉庫に格納されています