Philippe A. Bouchard wrote: [snip] > > Oh no, don't tell me GC_malloc was working this way ;) > > BTW gc_header *must* have (ip_descriptor *) ? > Only if you want to collect cycles or provide some other means for accessing the arcs in the pointer graph. As a matter of fact, it may be better to do somewhat like shared_ptr does, i.e. instead of storing a ip_descriptor*, just store something like counted_base, where the actual instance is a derived class, counted_impl<T>, which knows the "real" type, T, of the object pointed to. Maybe just add another virtual function to descriptor_of<T>, which does what the virtual counted_base_impl<P,D>::dispose does. This would allow proper destruction without a virtual destructor. IOW, the ip_descriptor* in the gc_header substitutes for the virtual destructor. This is pretty much of the top of my head, so, take it for what it's worth.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost