ATOMIC_FLAG_INIT
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<atomic>
|
||
|
#define ATOMIC_FLAG_INIT /* implementation-defined */
|
(desde C++11) | |
Define el inicializador que puede utilizarse para inicializar std::atomic_flag al estado despejado (false) en la forma std:: atomic_flag v = ATOMIC_FLAG_INIT ; . No está especificado si puede utilizarse con otros contextos de inicialización.
Si la bandera es un objeto completo con duración de almacenamiento estático , esta inicialización es estática .
|
Esta es la única forma de inicializar std::atomic_flag a un valor definido: el valor mantenido después de cualquier otra inicialización no está especificado. |
(until C++20) |
|
Esta macro ya no es necesaria ya que el constructor por defecto de std::atomic_flag lo inicializa al estado despejado. Se mantiene por compatibilidad con C. |
(since C++20) |
Ejemplo
#include <atomic> std::atomic_flag static_flag = ATOMIC_FLAG_INIT; // inicialización estática, // garantizada para estar disponible durante la inicialización dinámica de objetos estáticos. int main() { std::atomic_flag automatic_flag = ATOMIC_FLAG_INIT; // garantizado que funciona // std::atomic_flag another_flag(ATOMIC_FLAG_INIT); // no especificado }
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2159 | C++11 |
no estaba claro si
ATOMIC_FLAG_INIT
puede usarse con otros contextos de inicialización |
otros usos no están
garantizados |
| LWG 3659 | C++20 |
ATOMIC_FLAG_INIT
fue deprecado, pero necesario en C en algunas plataformas
|
se elimina la deprecación |
Véase también
|
(C++11)
|
el tipo atómico booleano libre de bloqueo
(clase) |
|
Documentación de C
para
ATOMIC_FLAG_INIT
|
|