// 这是一个普通的类
class A {
public:
A() {}
A(const A&) = delete;
A& operator=(const A&) = delete;
A(A&&) {}
void operator()() {}
};
A a;
std::thread t1(std::move(a)); //没有问题
std::thread t2(std::ref(a));//没有问题
std::thread t3(a);// 编译错误,提示拷贝构造函数是delete
我一直想不明白,为什么A的拷贝构造函数设置成delete后,就会出现上面的编译错误问题?
你这种写法不对啊,干嘛把一个A类对象传给thread的呢?