スマートポインタの使い方を学び、所有権を理解しようとしています。を値で関数に渡すauto_ptr
と、関数はそのポインターの排他的所有権を取得します。したがって、関数が終了すると、渡したポインターが削除されます。
ただし、を使用してこれを実行しようとすると、 sのunique_ptr
コピー割り当てが無効になっているかのように、コンパイルエラーが発生しますunique_ptr
。参照によってを渡すunique_ptr
ことは所有権を譲渡するようには見えません、それは単に関数にへの参照を与えるだけunique_ptr
です。
auto_ptr
sで動作するように関数に所有権を渡すことで、の動作を取得するにはどうすればよいunique_ptr
ですか?に関する詳細なチュートリアルへのリンクをいただければ幸いunique_ptr
です。これまでのところ、私が読んだものは、Boostで利用可能なスマートポインターについてのみ話しているか、話しているようであり、それをカバーしているためauto_ptr
無視しているようです。unique_ptr
shared_ptr