std::atomic_load, std::atomic_load_explicit
From cppreference.com
| ヘッダー <atomic> で定義 |
||
| template< class T > T atomic_load( const std::atomic<T>* obj ) noexcept; |
(1) | (C++11以降) |
| template< class T > T atomic_load( const volatile std::atomic<T>* obj ) noexcept; |
(2) | (C++11以降) |
| template< class T > T atomic_load_explicit( const std::atomic<T>* obj, |
(3) | (C++11以降) |
| template< class T > T atomic_load_explicit( const volatile std::atomic<T>* obj, |
(4) | (C++11以降) |
1,2) obj が指す値をアトミックに取得します。これは obj->load() と同等です。
3,4) obj が指す値をアトミックに取得します。これは obj->load(order) と同等です。
order が std::memory_order_release または std::memory_order_acq_rel のいずれかである場合、動作は未定義です。
[編集] パラメータ
| obj | - | 操作対象のアトミックオブジェクトへのポインタ |
| order | - | この操作のメモリ同期順序 |
[編集] 戻り値
obj が指すアトミックオブジェクトが保持している値。
[編集] 関連項目
| アトミックオブジェクトの値をアトミックに取得する ( std::atomic<T> の public メンバ関数) | |
| (C++11)(C++11) |
アトミックオブジェクトの値を非アトミックな引数でアトミックに置き換える (関数テンプレート) |
| (C++11) |
与えられたアトミック操作に対するメモリ順序制約を定義する (enum) |
| (C++20 で非推奨)(C++26 で削除) |
std::shared_ptr のアトミック操作の特殊化 (関数テンプレート) |