Freigeben über


atomic_fetch_add-Funktion

Fügt einem vorhandenen Wert einen in einem atomic-Objekt gespeicherten Wert hinzu.

template <class T> T* atomic_fetch_add(
   volatile atomic<T*> *Atom,
   ptrdiff_t Value
) noexcept;

template <class T> T* atomic_fetch_add(
   atomic<T*> *Atom,
   ptrdiff_t Value
) noexcept;

Parameter

  • Atom
    Ein Zeiger auf ein atomic-Objekt, in dem ein Zeiger auf den Typ T gespeichert wird.

  • Value
    Ein Wert vom Typ ptrdiff_t.

Rückgabewert

Der Wert des unmittelbar vor dem Ausführen des Vorgangs im atomischen Objekt enthaltenen Zeigers.

Hinweise

Die Funktion atomic_fetch_add führt read-modify-write einen Vorgang aus, um dem in Atom gespeicherten Wert atomisch Value hinzuzufügen, indem die memory_order_seq_cst memory_order-Einschränkung verwendet wird.

Wenn der atomische Typ atomic_address ist, dann ist Value vom Typ ptrdiff_t, und der Vorgang behandelt den gespeicherten Zeiger als char *.

Dieser Vorgang wird auch bei Integraltypen überladen:

integral atomic_fetch_add(
    volatile atomic-integral * Atom, integral Value
) noexcept;

integral atomic_fetch_add(
    atomic-integral * Atom, integral Value
) noexcept;

Anforderungen

Header: atomisch

Namespace: std

Siehe auch

Referenz

<atomic>

atomic-Struktur

atomic_fetch_add_explicit-Funktion