Namespaces
Variants

std::atomic_ref<T>:: fetch_and

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
Fourni uniquement lorsque T est un type entier autre que cv bool
value_type fetch_and ( value_type arg,

std:: memory_order order =

std:: memory_order_seq_cst ) const noexcept ;
(depuis C++20)

Remplace atomiquement la valeur actuelle de l'objet référencé par le résultat du ET binaire entre la valeur et arg . Cette opération est une opération de lecture-modification-écriture. La mémoire est affectée selon la valeur de order .

Cette surcharge participe à la résolution de surcharge seulement si std:: is_const_v < T > est false .

Table des matières

Paramètres

arg - l'autre argument du ET bit à bit
order - contraintes d'ordre mémoire à appliquer

Valeur de retour

La valeur de l'objet référencé, immédiatement avant les effets de cette fonction.

Exemple

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 3508
( P3323R1 )
C++20 fetch_and n'avait aucun sens pour const T contraint pour n'accepter que les T non constants