1

有没有办法在向量下方初始化?

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 已删除复制构造函数,我不知道该怎么做。:)

4

1 回答 1

3

您可以为您的Test类型实现复制构造函数。您不能依赖于原子的复制构造,也不能依赖于自动生成的Test.

但请注意:您正在做的事情似乎很脆弱。为什么你认为一个成员需要是原子的,而其他成员不需要?谁来保护载体本身?

于 2020-01-27T20:12:03.877 回答