ポインタにオブジェクトを返す関数があるので、次を使用します。
vector <auto_ptr <Object> > func() { ... }
安全かどうか知りたいのですが?
ポインタにオブジェクトを返す関数があるので、次を使用します。
vector <auto_ptr <Object> > func() { ... }
安全かどうか知りたいのですが?
stl は、要素をコピーして、そのアルゴリズムで一時的なコピーを使用するのが好きです (つまり、「コピー構築可能」かつ「割り当て可能」である必要があります)。これは には当てはまりませんがauto_ptr
。ポインターを別のものに割り当てるauto_ptr
と、ポインターの所有権が譲渡されます。
auto_ptr<foo> A = B;
B は になりNULL
、A はポインターの新しい所有者になり、B は使用できなくなります。また、一時オブジェクトが所有権を取得すると、それは返されず、NULL
代わりにぶら下がっているポインターまたはポインターのベクトルがあります。
C++11 スマート ポインターを使用するか、スマート ポインターをブーストするか、自分で実装することができます。