
Hi All, This is my first post though so please bear with my sentences. I have used scoped_ptr but this is too tied with new/delete semantics i.e. can't use it with pointers which gets allocated from specialized memory area. class AManager { public: A * allocate(); void deallocate(A * p); }; class A { ..... }; This specially happens when I use scoped pointer for C like pointers/allocator: Can I modify scoped pointer to have release semantics which is user defined: template<typename T> class DefaultReleasePolicy { static void releaseA(T * p) { delete p; } }; class ReleaseAPolicy { static void releaseA(A * p) { AManager::getInstance()->deallocate(p); } }; template<typename T,typemame ReleasePolicy = DefaultReleasePolicy<T> > class ScopedPtrModified { ~ScopedPtrModified() { ReleasePolicy::release(m_ptr); } }; Is this fine? Let me know your thoughts. Regards, Rahul