estructura atómica
Describe un objeto que realiza operaciones atómicas en un valor almacenado de tipo Ty.
template <class Ty>
struct atomic;
Members
Constructores públicos
Name |
Descripción |
---|---|
Construye un objeto atómico. |
Operadores públicos
Name |
Descripción |
---|---|
Lee y devuelve el valor almacenado.(método de atomic::load) |
|
Utiliza un valor especificado para reemplazar el valor almacenado.(método de atomic::store) |
|
Incrementa el valor almacenado.Sólo utiliza especializaciones integral y puntero. |
|
Agrega un valor especificado para el valor almacenado.Sólo utiliza especializaciones integral y puntero. |
|
Disminuye el valor almacenado.Sólo utiliza especializaciones integral y puntero. |
|
Resta un valor especificado en el valor almacenado.Sólo utiliza especializaciones integral y puntero. |
|
Realiza un bit a bit and en un valor especificado y el valor almacenado.Sólo utiliza especializaciones integrales. |
|
Realiza un bit a bit or en un valor especificado y el valor almacenado.Sólo utiliza especializaciones integrales. |
|
Realiza un bit a bit exclusive or en un valor especificado y el valor almacenado.Sólo utiliza especializaciones integrales. |
Métodos públicos
Name |
Descripción |
---|---|
Realiza una atomic_compare_and_exchange operación en this y devuelve el resultado. |
|
Realiza una weak_atomic_compare_and_exchange operación en this y devuelve el resultado. |
|
Agrega un valor especificado para el valor almacenado. |
|
Realiza un bit a bit and en un valor especificado y el valor almacenado. |
|
Realiza un bit a bit or en un valor especificado y el valor almacenado. |
|
Resta un valor especificado en el valor almacenado. |
|
Realiza un bit a bit exclusive or en un valor especificado y el valor almacenado. |
|
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. |
|
Lee y devuelve el valor almacenado. |
|
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