And what if you use the deallocator as a template parameter? + It does not cost extra space + Don't need to use an extra reference-counted pointer - The interface is not consistent with shared_ptr How about that? I would be happy to see this advancement in the scoped_ptr class. Anyway: Do you know any smart-pointer class, which supports custom deallocator and can transfer ownership? (auto_ptr does not support custom deallocator and either smart_ptr or shared_ptr does not support release() method). --- In Boost-Users@yahoogroups.com, "Peter Dimov" <pdimov@m...> wrote:
From: "Black Ice" <yg-boost-users@g...>
As following manner: template<class D> scoped_ptr(Y * p, D d);
Any suggestion are appreciated.
Scoped_ptr is intentionally kept as simple as possible to minimize overhead. A custom deallocation feature as above would require either doubling its size or making its operator* perform a double indirection.
If you need the custom deallocator feature, use shared_ptr.