c++ - C++11 中原子变量的复制初始化

标签 c++ c++11 initialization atomic stdatomic

C++11中的原子变量可以全局初始化吗?

例如:

std::atomic_int turnX = 5;
int main() {
    /* ... */
}

此操作失败:

error: deleted function ‘std::atomic<int>::atomic(const std::atomic<int>&)’

查看<atomic> ,它确实给出了这样的想法:这是不允许的。 我关于原子变量只能从函数内部赋值的说法是否正确?

最佳答案

尝试:

std::atomic_int turnX(5);

这使用了 constexpr 构造函数,因此应将其构造为 constant initialization (即在加载时)。

关于c++ - C++11 中原子变量的复制初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700795/

相关文章:

c++ - C++中"int"和"const int"的初始化和转换

c - Valgrind C : Accessing by reference and unitialized value

c++ - 如何仅在前面的语句成功时才执行语句

c++ - map [] 操作数不起作用 C++

c++ - 如何禁止在 C++ 2011 中调用右值对象的 const 成员函数?

c++ - 使用可变模板中的参数定义多个方法

C++值初始化

c++ - GCC malloc()这是正确的吗?

c++ - 如何在属性表中捕获 "tab changed"事件

c++ - 如何为明星节目添加空间