是否std::unique_ptr
使C++11/14 中的Boost.Pointer Container库过时?
在 C++98/03 中没有移动语义,如果与原始指针相比,智能指针之类shared_ptr
的具有引用计数相关的开销(对于 ref 计数块和互锁递增/递减)。std::vector<shared_ptr<T>>
因此,与 相比,类似的东西有开销std::vector<T*>
。
但是是否与(没有引用计数开销)std::vector<std::unqiue_ptr<T>>
一样有效,并且在异常和自动销毁方面也很安全(即析构函数将自动调用其指针存储在 中的项目的析构函数)?std::vector<T*>
vector<unique_ptr<T>>
T
vector
如果是这样,Boost.Pointer Container 在 C++11/14 代码中是否仍然有用,还是已经过时了?