0

すべての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=(古い値などを返すことではありません。)

4

1 に答える 1

0

Boostライブラリはレビュープロセスを経ます。そのレビューのおかげで、APIはそのままです。オプションは、アダプター クラス テンプレートまたは独自の共有ポインター クラス テンプレートのいずれかを作成することです。コードはしばしば重いのでboost、後者のオプションは悪い考えではないかもしれません。その後、API を完全に制御できます。

于 2013-02-22T12:03:13.913 に答える