
On 05/04/2011 04:33 AM, Olaf van der Spek wrote:
It's also a special case, which is best avoided if possible, that doesn't
seem to offer any real benefit. Containers of pointers occur quite frequently. There's even a Ptr Container lib.
Those containers manage the lifetimes of heap allocated objects just as smart pointers manage the lifetimes of theirs. One of the hallmarks of modern C++ programming is the absence of bare pointers. We have iterators, smart pointers and pointer containers to manage and hide pointers for us. We have a healthy distrust of bare pointers because they are so easily misused. boost::optional solves the problem without introducing bare pointers. In fact, optional solves the problem specifically so we can avoid using bare pointers. Rob