ATOMIC_FLAG_INIT
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Défini dans l'en-tête
<atomic>
|
||
|
#define ATOMIC_FLAG_INIT /* implementation-defined */
|
(depuis C++11) | |
Définit l'initialiseur qui peut être utilisé pour initialiser std::atomic_flag à l'état effacé (false) sous la forme std:: atomic_flag v = ATOMIC_FLAG_INIT ; . Il n'est pas spécifié s'il peut être utilisé avec d'autres contextes d'initialisation.
Si l'objet est un objet complet avec une durée de stockage statique , cette initialisation est statique .
|
C'est la seule manière d'initialiser std::atomic_flag à une valeur définie : la valeur maintenue après toute autre initialisation est non spécifiée. |
(until C++20) |
|
Cette macro n'est plus nécessaire car le constructeur par défaut de std::atomic_flag l'initialise à l'état effacé. Elle est conservée pour la compatibilité avec le C. |
(since C++20) |
Exemple
#include <atomic> std::atomic_flag static_flag = ATOMIC_FLAG_INIT; // initialisation statique, // garantie d'être disponible durant l'initialisation dynamique des objets statiques. int main() { std::atomic_flag automatic_flag = ATOMIC_FLAG_INIT; // fonctionnement garanti // std::atomic_flag another_flag(ATOMIC_FLAG_INIT); // non spécifié }
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 | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 2159 | C++11 |
il n'était pas clair si
ATOMIC_FLAG_INIT
pouvait être utilisé dans d'autres contextes d'initialisation |
les autres utilisations ne sont
pas garanties |
| LWG 3659 | C++20 |
ATOMIC_FLAG_INIT
était déprécié, mais nécessaire en C sur certaines plateformes
|
il n'est plus déprécié |
Voir aussi
|
(C++11)
|
le type atomique booléen sans verrouillage
(classe) |
|
Documentation C
pour
ATOMIC_FLAG_INIT
|
|