- atomic[meta header]
- macro[meta id-type]
- cpp11[meta cpp]
# define ATOMIC_VAR_INIT(value) see below
- see below[italic]
アトミック変数の初期化
このマクロは、静的ストレージを持つアトミック変数をvalue
で初期化するためのトークン列へと展開される(この操作はロックの初期化を必要とするかもしれない)。変数の初期化中に並行アクセスされた場合、それがアトミックな操作であったとしてもデータ競合を引き起こす。
このマクロは、atomic
オブジェクトに対してはatomic<int> x(value);
と書くのと等価である。C言語との互換性のために存在している。
#include <iostream>
#include <atomic>
int main()
{
std::atomic<int> x = ATOMIC_VAR_INIT(3);
std::cout << x.load() << std::endl;
}
- ATOMIC_VAR_INIT[color ff0000]
- x.load()[link atomic/load.md]
3
- C++11
- Clang: ??
- GCC:
- GCC, C++11 mode: 4.7.0
- ICC: ??
- Visual C++: 2012, 2013
# define ATOMIC_VAR_INIT(value) { value }