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