I believe that the implementation is correct, and that belief is confirmed by the latest documentation in the CVS - T must indeed be a complete type. Another change is the addition of a default constructor, which does not require T to be complete. Yes, keeping my CVS checkout up to date is A Good Thing - thanks for
--- In Boost-Users@y..., bjorn.karlsson@r... wrote: the reminder ;-)
Since shared_ptr requires a complete type only for a few operations, such as the constructor that you mentioned, and reset(T * p), I'd rephrase to something more explicit, like: "The instantiation of a shared_ptr typically requires a complete type. [etc]". Well, as I mentioned in my message to Peter Dimov, a single-argument ctor is not "default behaviour" :-) I'll reword the statement appropriately.
Thanks! -- Jim