ATOMIC_VAR_INIT

定义于头文件 <atomic>
#define ATOMIC_VAR_INIT(value) /* implementation-defined */

展开成能用于初始化能从 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)
默认构造的原子对象的非原子初始化
(函数模板)
构造原子对象
(std::atomic 的公开成员函数)

版本历史

  • (当前 | 先前 2017年9月27日 (三) 03:41Fruderica讨论 | 贡献. . (1,170字节) (-673). . (撤销)
  • 当前 | 先前 2014年10月26日 (日) 16:40P12bot讨论 | 贡献 . . (1,843字节) (0). . (Fix some translations) (撤销)
  • 当前 | 先前 2013年7月2日 (二) 07:14P12bot讨论 | 贡献 . . (1,843字节) (-63). . (Use {{lc}}. Update links. Various fixes.) (撤销)
  • 当前 | 先前 2012年11月2日 (五) 17:07P12bot讨论 | 贡献 . . (1,906字节) (+273). . (r2.7.3) (机器人添加:de, en, es, fr, it, ja, pt, ru) (撤销)
  • 当前 | 先前 2012年10月26日 (五) 09:21P12讨论 | 贡献 . . (1,633字节) (0). . (1个修订: Translate from the English version) (撤销)
  • 当前 | 先前 2012年10月26日 (五) 06:00TranslationBot讨论 | 贡献. . (1,633字节) (-46). . (Translated from the English version using Google Translate) (撤销)
  • 当前 | 先前 2012年10月25日 (四) 13:13P12讨论 | 贡献 . . (1,679字节) (0). . (1个修订: Translate from the English version) (撤销)
  • 当前 | 先前) 2012年10月25日 (四) 12:00TranslationBot讨论 | 贡献. . (1,679字节) (+1,679). . (Translated from the English version using Google Translate)