Namespaces
Variants

std:: atomic_init

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
atomic_init
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
ヘッダーで定義 <atomic>
template < class T >

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

typename std:: atomic < T > :: value_type desired ) noexcept ;
(1) (C++11以降)
(C++20で非推奨)
template < class T >

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

typename std:: atomic < T > :: value_type desired ) noexcept ;
(2) (C++11以降)
(C++20で非推奨)

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

obj がデフォルト構築されていない場合、またはこの関数が同じ obj に対して2回呼び出された場合、動作は未定義です。

目次

パラメータ

obj - 初期化するアトミックオブジェクトへのポインタ
desired - アトミックオブジェクトの初期化に使用する値

戻り値

(なし)

注記

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

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
P0558R1 C++11 厳密な型一致が要求されていた。これは
T が複数の引数から推論されていたため
T
obj からのみ推論される

関連項目

(C++11) (C++20で非推奨)
静的ストレージ期間を持つアトミック変数の定数初期化
(関数マクロ)
アトミックオブジェクトを構築する
( std::atomic<T> の公開メンバ関数)
Cドキュメント for atomic_init