On Wednesday 27 August 2003 10:11 am, Thorsten Ottosen wrote: > shared_ptr<> can hold incomplete types. Aparently the trick > is to hold a pointer to a destructor function. > > However, from reading the code, it is quite hard to understand completely. > > Does anyone know some resource that describes the technique > (or maybe someone could explain it to me)?
When you put a new T* into shared_ptr<T>, T must be a complete type, so that that point shared_ptr<T> generates an appropriate deleter for type T because it _knows_ the destructor has to be there, and saves a pointer to that deleter function. In other translation units, shared_ptr<T> can use the deleter by calling through the function pointer without ever instantiating a deleter. Doug _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost