#include <memory>
#include <future>
#include <thread>
using namespace std;
unique_ptr<int> uq(new int);
void foo(unique_ptr<int> q)
{}
int main()
{
foo(move(uq)); // OK.
async(foo, move(uq)); // Error: error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>'
return 0;
}
I2luY2x1ZGUgPG1lbW9yeT4KI2luY2x1ZGUgPGZ1dHVyZT4KI2luY2x1ZGUgPHRocmVhZD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1bmlxdWVfcHRyPGludD4gdXEobmV3IGludCk7CnZvaWQgZm9vKHVuaXF1ZV9wdHI8aW50PiBxKQp7fQoKaW50IG1haW4oKQp7CiAgICBmb28obW92ZSh1cSkpOyAgICAvLyBPSy4KICAgIGFzeW5jKGZvbywgbW92ZSh1cSkpOyAgLy8gRXJyb3I6IGVycm9yIEMyMjQ4OiAnc3RkOjp1bmlxdWVfcHRyPF9UeT46OnVuaXF1ZV9wdHInIDogY2Fubm90IGFjY2VzcyBwcml2YXRlIG1lbWJlciBkZWNsYXJlZCBpbiBjbGFzcyAnc3RkOjp1bmlxdWVfcHRyPF9UeT4nCiAgICByZXR1cm4gMDsKfQo=