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>>.