VisualC++相談室 5
■ このスレッドは過去ログ倉庫に格納されています
0767デフォルトの名無しさん
NGNGコンテナに auto_ptr 突っ込むのはまずい。規格書に書いてあるんだが STL のコンテナに格納する要素は
CopyConstructive
コピーコンストラクタで作ったインスタンスと、コピー元のインスタンスが等しい
Assignable
代入演算子で代入されたインスタンスと、代入したインスタンスが等しい
という二つの条件が要請されてるんだが T が auto_ptr だと
T u;
T t = u;
を実行すると u はポインタの所有権を放棄してしまうので t != u となるので NG。実際、値がコピーできる
ことを前提として書かれたソートアルゴリズムなんかもあって、それを適用するとコンテナの中身が破壊
されるそうだ。
俺も、最近 Effective STL, Exceptional C++ 読んで始めて知ったんだけど。
■ このスレッドは過去ログ倉庫に格納されています