Freigeben über


atomic_fetch_sub-Funktion

Subtrahiert einen Wert von einem in einem atomic-Objekt vorhandenen Wert.

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

template <class T> T* atomic_fetch_sub(
   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 atomic_fetch_sub-Funktion führt einen read-modify-write-Vorgang aus, um Value mithilfe der memory_order_seq_cst memory_order-Einschränkung atomisch vom gespeicherten Wert in Atom zu subtrahieren.

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_sub(
    volatile atomic-integral * Atom, integral Value
) noexcept;

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

Anforderungen

Header: atomisch

Namespace: std

Siehe auch

Referenz

<atomic>

atomic-Struktur

atomic_fetch_sub_explicit-Funktion