problematic example:
class A
{
public:
void func1(){throw bad_alloc();};
void func2()
{
try
{
int i;
shared_ptr<void> shutdown(static_cast<void*>(0), bind(&A::func1, this));
}
catch(...)
{};
};
};
int main()
{
A a1;
a1.func2();
}