是否 std::unique_ptr
使 Boost.Pointer Container 库在 C++11/14 中过时?
在 C++98/03 中没有移动语义,也没有像 shared_ptr
这样的智能指针。与原始指针相比,具有引用计数相关的开销(对于引用计数 block 和互锁增量/减量)。所以像 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 代码中是否仍然有用,还是只是过时了?
最佳答案
它并没有过时;它有一个完全不同的和更多
比std::vector<std::unique_ptr<T>>
直观的界面.
关于c++ - Boost.Pointer 容器在 C++11/14 中被 std::unique_ptr 淘汰了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657518/