Hi All,
I wonder when the shared_ptr deleter
is destroyed.
I have a shared_ptr with a custom deleter.
I would expect when the last shared pointer to the object is gone then
not only the deleter method will be called, but the deleter function object
is also released. As I see the deleter is taken by value and stored by
value in the reference counter, so I do not understand what is going on.
How is the deleter mean to be freed?
Thanks,
Tamas
struct MyClassDeleter
{
~MyClassDeleter()
{
// Break point is set here
}
void
operator()(MyClass*
item)
{
// Break point is set here
}
}
{
auto
sharedPtr = boost::shared_ptr<MyClass>(new MyClass, MyClassDeleter)
}
// shared_ptr leaves the scope here,
the custom deleter is called (parenthesis operator)
// the deleter instance is however not
destroyed, the breakpoint in the destructor does not hit