You overcome the problem, just pass it along std::shared_ptr, std::bindand std::threadhow to deal with it:
std::thread myThread( &Foo::operator(), foo_ptr );
Thus, the instance std::threadwill share the property and ensure that the object will not be destroyed beforemyThread