次の方法で共有


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

参照

関連項目

<atomic>

atomic 構造体

atomic_fetch_add 関数