ATOMIC_VAR_INIT
来自 cppreference.com
定义在头文件中 <atomic> |
||
#define ATOMIC_VAR_INIT(value) /* 实现定义 */ |
(自 C++11 起) (C++20 中已弃用) |
|
扩展为一个表达式,可用于初始化一个 std::atomic 对象,该对象可以从 value
初始化。如果原子对象具有静态存储持续时间,则此初始化为 常量初始化。
[编辑] 备注
在初始化期间从另一个线程访问变量,即使通过原子操作,也是数据竞争(如果地址立即通过 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 文档 for ATOMIC_VAR_INIT
|