Chuck Messenger wrote:
For convenience, logical continuity, and consistency with other Boost libraries, you should be able to include all the smart_ptr pieces with
#include <boost/smart_ptr.hpp>
Currently, only 4 are included:
#include <boost/scoped_ptr.hpp> #include <boost/scoped_array.hpp> #include <boost/shared_ptr.hpp> #include <boost/shared_array.hpp>
Missing are:
#include <boost/weak_ptr.hpp> #include <boost/intrusive_ptr.hpp> #include <boost/enable_shared_from_this.hpp>
If the idea was to leave out rarely-used, specialized pieces, in order to cut down on extraneous compile time, then I'd suggest that weak_ptr.hpp needs to be included in smart_ptr.hpp -- it seems to me to be one of the essential, common components of the smart_ptr system.
smart_ptr.hpp is only provided for backward compatibility. In an earlier version of Boost it contained the four scoped_* and shared_* class templates. New code should include the appropriate header files directly.
Certainly, getting rid of a partially-populated smart_ptr.hpp is better than keeping it. But personally, I like the idea that every Boost library should supply a single "umbrella" include file which includes all the library's headers (no doubt with a handful of arcane exceptions). It makes it much easier to use an unfamiliar library -- one less thing to grapple with!
- Chuck Messenger
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost