名前空間
変種
操作

std::atomic_init

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

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

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

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

                  typenamestd::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]
close