ATOMIC_VAR_INIT
来自 cppreference.cn
定义于头文件 <atomic> |
||
#define ATOMIC_VAR_INIT(value) /* implementation-defined */ |
(since C++11) (C++20 中已弃用) |
|
展开为一个表达式,该表达式可用于初始化可以从 value
初始化的 std::atomic 对象。如果原子对象具有静态存储持续时间,则此初始化是常量初始化。
[编辑] 注释
在从另一个线程初始化变量期间访问该变量,即使是通过原子操作,也是数据竞争(如果地址通过 std::memory_order_relaxed 操作立即传递给另一个线程,则可能会发生这种情况)
此宏主要为与 C 的兼容性而提供;它的行为与 std::atomic 的构造函数相同。
[编辑] 示例
运行此代码
#include <atomic> #include <iostream> int main() { std::atomic<int> a = ATOMIC_VAR_INIT(1); // std::atomic<int> a(1); // C++-only alternative std::cout << "Initialized std::atomic<int> as: " << a << '\n'; }
输出
Initialized std::atomic<int> as: 1
[编辑] 参见
(C++11)(C++20 中已弃用) |
默认构造的原子对象的非原子初始化 (函数模板) |
构造一个原子对象 ( std::atomic<T> 的公共成员函数) | |
C 文档 关于 ATOMIC_VAR_INIT
|