id summary reporter owner description type status milestone component version severity resolution keywords cc 5381 get_deleter(ptr) needs D to be exactly known christian.kotz@… Peter Dimov "get_deleter(ptr) returns 0. This makes efficient polymorphous COW pointer implementations internally based on shared_pointer inefficient, because it is not possible to have reference count (deleter) and pointee allocated in one memory block, as is done in boost:::make_shared. Note, COW pointer need access to the deleter for the clone function at a time later than the constructor. Suggestion: either supply: template void const * get_deleter_raw(shared_ptr const & ptr); or implement Base_of_D const * get_deleter(shared_ptr const & ptr) returning pointer to ptrs deleter of type D (using dynamic_cast?) if B is a virtual class, (maybe using trait has_virtual_destructor) " Feature Requests closed To Be Determined smart_ptr Boost 1.45.0 Problem wontfix