为什么重置返回无效?

时间:2013-02-22 11:09:45

标签: c++ reset smart-pointers

shared_ptr, auto_ptr, unique_ptr, boost::scoped_ptr void的所有reset functions返回unique_ptr& reset( pointer ptr = pointer() ); 时,它们实际上也可以返回对象本身的引用,因为,如果我重置某个智能指针,可能是,我我打算用它。 (Maybe doubtful example.

即,无法重置定义为

void reset( pointer ptr = pointer() );

而不是

reset

注意:基本上*this*,实际上是“分配”,最后应该返回operator=,就像{{1}}已经做到的那样。 (这不是关于返回旧的价值还是某些东西。)

1 个答案:

答案 0 :(得分:0)

Boost个图书馆会经过审核流程。由于该审查,API就是这样。您可以选择编写适配器类模板或您自己的共享指针类模板。由于boost代码通常很重,后一种选择可能不是一个坏主意。然后,您将完全控制API。