ATOMIC_VAR_INIT
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<atomic>
|
||
|
#define ATOMIC_VAR_INIT(value) /* definido por la implementación */
|
(desde C++11)
(obsoleto en C++20) |
|
Se expande a una expresión que puede utilizarse para inicializar un objeto
std::atomic
que puede inicializarse desde
value
. Si el objeto atómico tiene duración de almacenamiento estático, esta inicialización es
constant initialization
.
Notas
Acceder a la variable durante la inicialización desde otro hilo, incluso mediante una operación atómica, es una carrera de datos (puede ocurrir si la dirección se pasa inmediatamente a otro hilo con una operación std::memory_order_relaxed )
Esta macro se proporciona principalmente para compatibilidad con C; se comporta igual que el constructor de std::atomic .
Ejemplo
#include <atomic> #include <iostream> int main() { std::atomic<int> a = ATOMIC_VAR_INIT(1); // std::atomic<int> a(1); // Alternativa exclusiva de C++ std::cout << "Initialized std::atomic<int> as: " << a << '\n'; }
Salida:
Initialized std::atomic<int> as: 1
Véase también
|
(C++11)
(obsoleto en C++20)
|
inicialización no atómica de un objeto atómico construido por defecto
(plantilla de función) |
|
construye un objeto atómico
(función miembro pública de
std::atomic<T>
)
|
|
|
Documentación de C
para
ATOMIC_VAR_INIT
|
|