ATOMIC_VAR_INIT
De cppreference.com
| Definido en el archivo de encabezado <atomic>
|
||
#define ATOMIC_VAR_INIT(value) /* definido por la implementación */
|
(desde C++11) (en desuso en C++20) |
|
Se expande a una expresión que puede ser utilizada para inicializar un objeto std::atomic que puede ser inicializado a partir de value. Si el objeto atómico tiene duración de almacenamiento estática, esta inicialización es inicialización por constante.
Notas
Acceder a la variable durante la inicialización desde otro hilo/subproceso, aún cuando es una operación atómica, es una carrera de datos (puede suceder si la dirección se pasa inmediatamente a otro hilo/subproceso con una operación std::memory_order_relaxed).
Esta macro se proporciona primordialmente para compatibilidad con C. Se comporta de igual manera que el constructor de std::atomic.
Ejemplo
Ejecuta este código
#include <atomic>
#include <iostream>
int main()
{
std::atomic<int> a = ATOMIC_VAR_INIT(1);
// std::atomic<int> a(1); // Alternativa solamente para C++
std::cout << "Se ha inicializado std::atomic<int> como: " << a << '\n';
}
Salida:
Se ha inicializado std::atomic<int> como: 1
Véase también
(C++11)(en desuso 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)
| |
Documentación de C para ATOMIC_VAR_INIT
|