Compartir a través de


estructura atómica

Describe un objeto que realiza operaciones atómicas en un valor almacenado de tipo Ty.

template <class Ty>
struct atomic;

Members

Hh874651.collapse_all(es-es,VS.110).gifConstructores públicos

Name

Descripción

Constructor atomic::atomic

Construye un objeto atómico.

Hh874651.collapse_all(es-es,VS.110).gifOperadores públicos

Name

Descripción

operador de Ty de atomic::operator

Lee y devuelve el valor almacenado.(método de atomic::load)

cbegin (método)

Utiliza un valor especificado para reemplazar el valor almacenado.(método de atomic::store)

operador de atomic::operator++

Incrementa el valor almacenado.Sólo utiliza especializaciones integral y puntero.

operador de atomic::operator+=

Agrega un valor especificado para el valor almacenado.Sólo utiliza especializaciones integral y puntero.

atomic::operator-- operador

Disminuye el valor almacenado.Sólo utiliza especializaciones integral y puntero.

operador de atomic::operator-=

Resta un valor especificado en el valor almacenado.Sólo utiliza especializaciones integral y puntero.

operador de atomic::operator&=

Realiza un bit a bit and en un valor especificado y el valor almacenado.Sólo utiliza especializaciones integrales.

atomic::operator|= Operador

Realiza un bit a bit or en un valor especificado y el valor almacenado.Sólo utiliza especializaciones integrales.

operador de atomic::operator^=

Realiza un bit a bit exclusive or en un valor especificado y el valor almacenado.Sólo utiliza especializaciones integrales.

Hh874651.collapse_all(es-es,VS.110).gifMétodos públicos

Name

Descripción

método de atomic::compare_exchange_strong

Realiza una atomic_compare_and_exchange operación en this y devuelve el resultado.

método de atomic::compare_exchange_weak

Realiza una weak_atomic_compare_and_exchange operación en this y devuelve el resultado.

método de atomic::fetch_add

Agrega un valor especificado para el valor almacenado.

método de atomic::fetch_and

Realiza un bit a bit and en un valor especificado y el valor almacenado.

método de atomic::fetch_or

Realiza un bit a bit or en un valor especificado y el valor almacenado.

método de atomic::fetch_sub

Resta un valor especificado en el valor almacenado.

método de atomic::fetch_xor

Realiza un bit a bit exclusive or en un valor especificado y el valor almacenado.

método de atomic::is_lock_free

Especifica si las operaciones atómicas en this son bloqueo libre.Un tipo atómico es bloqueo libre si no hay operaciones atómicas en ese tipo utilizan bloqueos.

método de atomic::load

Lee y devuelve el valor almacenado.

método de atomic::store

Utiliza un valor especificado para reemplazar el valor almacenado.

Comentarios

El tipo de Ty debe ser puede copiar una.Es decir, con memcpy copiar sus bytes debe producir una válida Ty objeto compara igual al objeto original.El compare_exchange_weak y compare_exchange_strong uso de funciones miembro memcmp para determinar si dos Ty los valores son iguales.Estas funciones no va a utilizar un Ty-definido operator==.Las funciones miembro de atomic use memcpy para copiar los valores de tipo Ty.

Una especialización parcial, atomic<Ty *>, no existe para todos los tipos de puntero.La especialización permite la adición de un desplazamiento en el valor de puntero administrado o la resta de un desplazamiento de él.Las operaciones aritméticas toman un argumento de tipo ptrdiff_t y ajustar dicho argumento de acuerdo con el tamaño de Ty para que sea coherente con la dirección normal aritmético.

Existe una especialización para cada tipo integral excepto bool.Cada especialización proporciona un amplio conjunto de métodos para operaciones atómicas aritméticos y lógicos.

atomic<char>

atomic<signed char>

atomic<unsigned char>

atomic<char16_t>

atomic<char32_t>

atomic<wchar_t>

atomic<short>

atomic<unsigned short>

atomic<int>

atomic<unsigned int>

atomic<long>

atomic<unsigned long>

atomic<long long>

atomic<unsigned long long>

Se derivan de especializaciones integrales correspondiente **atomic_**integral tipos.Por ejemplo, atomic<unsigned int> se deriva de atomic_uint.

Requisitos

Encabezado: atómica

Espacio de nombres: std

Vea también

Referencia

<atomic>

Otros recursos

Archivos de encabezado