#include <iostream>
#include <memory>
using namespace std;
class A{ };
void foo(A*)
{
// do something, or not, it is up to you...
}
int main() {
std::shared_ptr<A> sp(new A, foo);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEF7IH07Cgp2b2lkIGZvbyhBKikKewogICAgLy8gZG8gc29tZXRoaW5nLCBvciBub3QsIGl0IGlzIHVwIHRvIHlvdS4uLgp9CgppbnQgbWFpbigpIHsKCXN0ZDo6c2hhcmVkX3B0cjxBPiBzcChuZXcgQSwgZm9vKTsKCXJldHVybiAwOwp9