是否有一种方法可以在向量下面进行初始化?
struct Test {
std::atomic_bool is_enabled;
int age;};
int main()
{
std::vector<Test> tests{
Test{false, 42},
Test{true, 77}
};
}
[最明显(至少对我来说)的方法无效。问题是std :: atomic_bool is_enabled删除了副本构造函数,我不知道该怎么办。 :)
您可以为Test
类型实现一个复制构造函数。您只是不能依赖原子的复制构造,也不能因此而获得Test
的自动生成的复制构造函数。
不过要当心:您正在做的事情似乎很脆弱。您为什么认为一个成员需要是原子的,而其他成员则不需要?谁来保护媒介本身?