ATOMIC_VAR_INIT
来自 cppreference.cn
定义于头文件 <atomic> |
||
#define ATOMIC_VAR_INIT(value) /* implementation-defined */ |
(C++11 起) (C++20 中已弃用) |
|
扩展为一个表达式,可用于初始化一个可从 `value` 初始化的 std::atomic 对象。如果 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> 的公共成员函数) | |
ATOMIC_VAR_INIT 的 C 文档
|