Condividi tramite


Funzione atomic_fetch_add

Aggiunge un valore a un valore esistente archiviato in un oggetto atomic.

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;

Parametri

  • Atom
    Puntatore a un oggetto atomic che include un puntatore al tipo T.

  • Value
    Valore di tipo ptrdiff_t.

Valore restituito

Valore del puntatore contenuto dall'oggetto atomico immediatamente prima dell'esecuzione dell'operazione.

Note

La funzione atomic_fetch_add esegue un'operazione read-modify-write per aggiungere in modalità atomica Value al valore memorizzato in Atom, utilizzando il vincolo memory_order_seq_cst memory_order.

Quando il tipo atomico è atomic_address, Value ha il tipo ptrdiff_t e l'operazione considera il puntatore archiviato come char *.

Questa operazione è anche sottoposta a overload per i tipi integrali:

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

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

Requisiti

Intestazione: atomico

Spazio dei nomi: std

Vedere anche

Riferimenti

<atomic>

Struttura atomic

Funzione atomic_fetch_add_explicit