名前空間
変種
操作

std::atomic_init

提供: cppreference.com
< cpp‎ | atomic
 
 
 
ヘッダ <atomic> で定義
template< class T >

void atomic_init( std::atomic<T>* obj,

                  typename std::atomic<T>::value_type desired ) noexcept;
(C++11以上)
template< class T >

void atomic_init( volatile std::atomic<T>* obj,

                  typename std::atomic<T>::value_type desired ) noexcept;
(C++11以上)

デフォルト構築されたアトミックオブジェクト obj を値 desired で初期化します。 この関数はアトミックではありません。 別スレッドからの並行アクセスは、それがアトミック操作であっても、データ競合になります。

obj がデフォ���ト構築されていない場合、動作は未定義です。

同じ obj に対してこの関数が2回呼ばれた場合、動作は未定義です。

目次

[編集] 引数

obj - 初期化するアトミックオブジェクトを指すポインタ
desired - アトミックオブジェクトを初期化するための値

[編集] 戻り値

(なし)

[編集] ノート

この関数は C との互換性のために提供されています。 互換性が必要なければ、非デフォルトコンストラクタを通して std::atomic を初期化することができます。

[編集]

[編集] 欠陥報告

以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。

DR 適用先 発行時の動作 正しい動作
P0558R1 C++11 exact type match required because T is deduced from multiple arguments T is deduced from the atomic argument only

[編集] 関連項目

(C++11)(C++20で非推奨)
静的記憶域期間のアトミック変数の定数初期化
(関数マクロ) [edit]
アトミックオブジェクトを構築します
(std::atomic<T>のパブリックメンバ関数) [edit]