#include <iostream>
#include <future>
#include <string>
class MyThread {
std::future<void> future;
public:
template<class... Args>
MyThread(Args&&... myArgs) :
future(std::async(std::launch::async, &MyThread::run<Args&&...>, this, std::forward<Args>(myArgs)...))
{}
template<class... Args>
void run(Args&&... myArgs) {}
};
int main() {
std::string x;
MyThread thread(std::ref(x));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnV0dXJlPgojaW5jbHVkZSA8c3RyaW5nPgoKY2xhc3MgTXlUaHJlYWQgewoKCQlzdGQ6OmZ1dHVyZTx2b2lkPiBmdXR1cmU7CgoJcHVibGljOgoKCQl0ZW1wbGF0ZTxjbGFzcy4uLiBBcmdzPgoJCU15VGhyZWFkKEFyZ3MmJi4uLiBteUFyZ3MpIDoKCQlmdXR1cmUoc3RkOjphc3luYyhzdGQ6OmxhdW5jaDo6YXN5bmMsICZNeVRocmVhZDo6cnVuPEFyZ3MmJi4uLj4sIHRoaXMsIHN0ZDo6Zm9yd2FyZDxBcmdzPihteUFyZ3MpLi4uKSkKCQl7fQoKCQl0ZW1wbGF0ZTxjbGFzcy4uLiBBcmdzPgoJCXZvaWQgcnVuKEFyZ3MmJi4uLiBteUFyZ3MpIHt9Cn07CgppbnQgbWFpbigpIHsKCXN0ZDo6c3RyaW5nIHg7CglNeVRocmVhZCB0aHJlYWQoc3RkOjpyZWYoeCkpOwoJcmV0dXJuIDA7Cn0=