conditional_variable 不是可复制构造、可移动构造、可复制分配、可移动分配。
我们可以这样打电话吗
vector<conditional_variable> cond;
conditional_variable c1;
conditional_variable c2;
cond.push_back(c1);
cond.push_back(c2);
Run Code Online (Sandbox Code Playgroud)
在这些情况下正确的处理方法是什么
您可以创建一个向量,该向量可以默认构造,但不能使用带有大小参数的构造函数进行复制或移动:
std::vector<std::condition_variable> cv_vec(20);
Run Code Online (Sandbox Code Playgroud)
这样的向量不能增长,但可以用pop_back()或缩小clear()(但不能erase()用 或resize())。
或者,由于所有问题都可以通过额外的间接级别来解决,因此您可以使用 的向量std::unique_ptr<std::condition_variable>来代替。
现在,为什么有人想要对像这样的同步原语执行此操作condition_variable,我不知道......