atomic_fetch_add_explicit 関数
atomic オブジェクトに格納されている既存の値に値を加算します。
template <class T> T* atomic_fetch_add_explicit(
volatile atomic<T*> *Atom,
ptrdiff_t Value,
memory_order Order
) noexcept;
template <class T> T* atomic_fetch_add_explicit(
atomic<T*> *Atom,
ptrdiff_t Value,
memory_order Order
) noexcept;
パラメーター
Atom
T 型のポインターが格納された atomic オブジェクトへのポインター。Value
ptrdiff_t 型の値。
戻り値
操作の直前にアトミック オブジェクトによって格納されたポインター。
解説
atomic_fetch_add_explicit 関数は、Order が指定した memory_order の制約内で Atom に格納されている値に Value をアトミックに加算するために read-modify-write 操作を実行します。
アトミック型が atomic_address の場合、Value に ptrdiff_t 型があり、操作は char * として格納されているポインターを処理します。
この操作は、整数型に対してもオーバーロードします。
integral atomic_fetch_add_explicit(
volatile atomic-integral * Atom, integral Value, memory_order Order
) noexcept;
integral atomic_fetch_add_explicit(
atomic-integral * Atom, integral Value, memory_order Order
) noexcept;
必要条件
ヘッダー: atomic
名前空間: std