Namespaces
Variants

std:: atomic_init

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
atomic_init
(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
Défini dans l'en-tête <atomic>
template < class T >

void atomic_init
( std:: atomic < T > * obj,

typename std:: atomic < T > :: value_type desired ) noexcept ;
(1) (depuis C++11)
(obsolète en C++20)
template < class T >

void atomic_init
( volatile std:: atomic < T > * obj,

typename std:: atomic < T > :: value_type desired ) noexcept ;
(2) (depuis C++11)
(obsolète en C++20)

Initialise l'objet atomique construit par défaut obj avec la valeur desired . La fonction n'est pas atomique : un accès concurrent depuis un autre thread, même via une opération atomique, constitue une course aux données.

Si obj n'a pas été construit par défaut, ou si cette fonction est appelée deux fois sur le même obj , le comportement est indéfini.

Table des matières

Paramètres

obj - pointeur vers un objet atomique à initialiser
desired - valeur avec laquelle initialiser l'objet atomique

Valeur de retour

(aucun)

Notes

Cette fonction est fournie pour assurer la compatibilité avec le langage C. Si la compatibilité n'est pas requise, std::atomic peut être initialisé via ses constructeurs non par défaut.

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 correct
P0558R1 C++11 une correspondance exacte de type était requise car
T était déduit de multiples arguments
T est uniquement déduit
de obj

Voir aussi

(C++11) (obsolète dans C++20)
initialisation constante d'une variable atomique de durée de stockage statique
(macro fonction)
construit un objet atomique
(fonction membre publique de std::atomic<T> )
Documentation C pour atomic_init