Espacios de nombres
Variantes

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

#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) [editar]
Construye un objeto atómico.
(función miembro pública de std::atomic) [editar]
Documentación de C para ATOMIC_VAR_INIT
Morty Proxy This is a proxified and sanitized view of the page, visit original site.