std::atomic_init
提供: cppreference.com
ヘッダ <atomic> で定義 | ||
template<class T > void atomic_init(std::atomic<T>* obj, | (C++11以上) | |
template<class T > void atomic_init(volatilestd::atomic<T>* obj, | (C++11以上) | |
デフォルト構築されたアトミックオブジェクト obj
を値 desired
で初期化します。 この関数はアトミックではありません。 別スレッドからの並行アクセスは、それがアトミック操作であっても、データ競合になります。
obj
がデフォルト構築されていない場合、動作は未定義です。
同じ obj
に対してこの関数が2回呼ばれた場合、動作は未定義です。
目次 |
[編集]引数
obj | - | 初期化するアトミックオブジェクトを指すポインタ |
desired | - | アトミックオブジェクトを初期化するための値 |
[編集]戻り値
(なし)
[編集]ノート
この関数は C との互換性のために提供されています。 互換性が必要なければ、非デフォルトコンストラクタを通して std::atomic を初期化することができます。
[編集]例
This section is incomplete Reason: no example |
[編集]欠陥報告
以下の動作変更欠陥報告は以前に発行された 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で非推奨) | 静的記憶域期間のアトミック変数の定数初期化 (関数マクロ) |
アトミックオブジェクトを構築します ( std::atomic<T> のパブリックメンバ関数) | |
atomic_init の C言語リファレンス |