#include<future>
#include<memory>
class Foo {
public:
Foo() :mData(new int[100]) {}
void run() {}
private:
std::unique_ptr<int[]> mData;
};
int main()
{
auto f = std::async(std::launch::async, &Foo::run, Foo());
f.get();
}
I2luY2x1ZGU8ZnV0dXJlPgojaW5jbHVkZTxtZW1vcnk+CgoKY2xhc3MgRm9vIHsKcHVibGljOgoJRm9vKCkgOm1EYXRhKG5ldyBpbnRbMTAwXSkge30KCXZvaWQgcnVuKCkge30KcHJpdmF0ZToKCXN0ZDo6dW5pcXVlX3B0cjxpbnRbXT4gbURhdGE7Cn07CgoKaW50IG1haW4oKQp7CglhdXRvIGYgPSBzdGQ6OmFzeW5jKHN0ZDo6bGF1bmNoOjphc3luYywgJkZvbzo6cnVuLCBGb28oKSk7CglmLmdldCgpOwp9