【初心者歓迎】C/C++室 Ver.64【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0719デフォルトの名無しさん
2009/03/31(火) 17:35:41func(boost::scoped_ptr<X>(new X), boost::scoped_ptr<X>(new X));
としたらメモリリークの危険があるのは引数の実行順が不定だからであり、それは分かります
(前者のnew Xが実行の後、後者のnew Xが実行中そのコンストラクタで例外が出たときとか)
その本では、スマートポインタへnewしたポインタを渡すのは独立したステートメントでやろう、となっているのですが
func(boost::scoped_ptr<X>(new X));
とした場合も危険はあるのでしょうか
new X → shared_ptr → 引数呼び出しの順番は変わらないような気がするので
■ このスレッドは過去ログ倉庫に格納されています