Boost.Pointer Container made obsolete by std::unique_ptr in C++11/14?
It's not obslete; it has a completely different and more
intuitive interface than std::vector<std::unique_ptr<T>>
.
As James mentions in his answer, the Boost.Pointer containers offer a more intuitive interface as compared to what you get by sticking a unique_ptr
into a standard library container.
Aside from that, boost::ptr_vector<T>
(and friends) store the pointed to type as a void *
underneath, so you don't get an entire class template instantiation for every T
. This is not the case with vector<unique_ptr<T>>
.