すべてのreset
関数は、実際にはオブジェクト自体への参照も返すことができる場合にshared_ptr, auto_ptr, unique_ptr, boost::scoped_ptr
戻りvoid
ます。なぜなら、何かへのスマート ポインターをリセットすると、それを使用する可能性が高いからです。(疑わしい例かもしれません。 )
つまり、次のように定義することはできませんでした。
unique_ptr& reset( pointer ptr = pointer() );
それ以外の
void reset( pointer ptr = pointer() );
?
注: 基本的reset
に、これは実際には「割り当て」であり、既に行っている*this*
ように、最後に返す必要があります。operator=
(古い値などを返すことではありません。)