ATOMIC_VAR_INIT
From cppreference.net
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<atomic>
|
||
|
#define ATOMIC_VAR_INIT(value) /* 由实现定义 */
|
(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++专用替代方案 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
|
|