#include <iostream>
#include <future>
#include <unistd.h>
using namespace std;
struct theClass {
void member() {
cout << "this: " << (void*)this << "\n";
cout << "this_thread id: " << this_thread::get_id() << "\n";
theClass* that = this;
async([that]() {
usleep(100);
cout << "that: " << (void*)that << "\n";
cout << "that_thread id: " << this_thread::get_id() << "\n";
});
}
};
void temp() {
theClass().member();
}
int main() {
temp();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnV0dXJlPgojaW5jbHVkZSA8dW5pc3RkLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHRoZUNsYXNzIHsKCQoJdm9pZCBtZW1iZXIoKSB7CgkJY291dCA8PCAidGhpczogIiA8PCAodm9pZCopdGhpcyA8PCAiXG4iOwoJCWNvdXQgPDwgInRoaXNfdGhyZWFkIGlkOiAiIDw8IHRoaXNfdGhyZWFkOjpnZXRfaWQoKSA8PCAiXG4iOwoJCQoJCXRoZUNsYXNzKiB0aGF0ID0gdGhpczsKCQkKCQlhc3luYyhbdGhhdF0oKSB7CgkJCXVzbGVlcCgxMDApOwoJCQkKCQkJY291dCA8PCAidGhhdDogIiA8PCAodm9pZCopdGhhdCA8PCAiXG4iOwoJCQljb3V0IDw8ICJ0aGF0X3RocmVhZCBpZDogIiA8PCB0aGlzX3RocmVhZDo6Z2V0X2lkKCkgPDwgIlxuIjsKCQl9KTsKCX0KCQp9OwoKdm9pZCB0ZW1wKCkgewoJdGhlQ2xhc3MoKS5tZW1iZXIoKTsKfQoKaW50IG1haW4oKSB7Cgl0ZW1wKCk7CglyZXR1cm4gMDsKfQ==