- atomic[meta header]
- std[meta namespace]
- function template[meta id-type]
- cpp11[meta cpp]
namespace std {
template <class T>
void atomic_init(volatile atomic<T>* object,
T desired) noexcept; // (1) C++11
template <class T>
void atomic_init(volatile atomic<T>* object,
typename atomic<T>::value_type desired) noexcept; // (1) C++17
template <class T>
void atomic_init(atomic<T>* object,
T desired) noexcept; // (2) C++11
template <class T>
void atomic_init(atomic<T>* object,
typename atomic<T>::value_type desired) noexcept; // (2) C++17
}
- atomic[link /reference/atomic/atomic.md]
アトミックオブジェクトを初期化する
この関数は、アトミックオブジェクトobject
を値desired
で非アトミックに初期化する。この関数は、デフォルト構築されたオブジェクトに対して一度だけ呼びださなければならない。変数の初期化中に並行アクセスされた場合、それがアトミックな操作であったとしてもデータ競合を引き起こす。
なし
投げない
この関数は、C言語との互換性のために存在している。
#include <iostream>
#include <atomic>
int main()
{
std::atomic<int> x;
std::atomic_init(&x, 1);
std::cout << x.load() << std::endl;
}
- std::atomic_init[color ff0000]
- x.load()[link atomic/load.md]
1
- C++11
- Clang, C++11 mode: 3.3
- GCC, C++11 mode:
- ICC: ??
- Visual C++: 2012, 2013