Estrutura atômica
Descreve um objeto que executa operações atômicas em um valor armazenado do tipo Ty.
template <class Ty>
struct atomic;
Membros
Construtores públicos
Nome |
Descrição |
---|---|
Constrói um objeto atômico. |
Operadores públicos
Nome |
Descrição |
---|---|
Lê e retorna o valor armazenado.(Método atomic::Load) |
|
Usa um valor especificado para substituir o valor armazenado.(Método atomic::Store) |
|
Incrementa o valor armazenado.Usado somente por especializações integral e ponteiro. |
|
Adiciona um valor especificado para o valor armazenado.Usado somente por especializações integral e ponteiro. |
|
Decrementa o valor armazenado.Usado somente por especializações integral e ponteiro. |
|
Subtrai um valor especificado de valor armazenado.Usado somente por especializações integral e ponteiro. |
|
Executa um bit a bit and em um valor especificado e o valor armazenado.Usado somente por especializações integrais. |
|
Executa um bit a bit or em um valor especificado e o valor armazenado.Usado somente por especializações integrais. |
|
Executa um bit a bit exclusive or em um valor especificado e o valor armazenado.Usado somente por especializações integrais. |
Métodos públicos
Nome |
Descrição |
---|---|
Realiza uma atomic_compare_and_exchange operação em this e retorna o resultado. |
|
Realiza uma weak_atomic_compare_and_exchange operação em this e retorna o resultado. |
|
Adiciona um valor especificado para o valor armazenado. |
|
Executa um bit a bit and em um valor especificado e o valor armazenado. |
|
Executa um bit a bit or em um valor especificado e o valor armazenado. |
|
Subtrai um valor especificado de valor armazenado. |
|
Executa um bit a bit exclusive or em um valor especificado e o valor armazenado. |
|
Especifica se as operações atômicas em this são bloqueio livre.É um tipo atômico bloqueio livre se nenhum operações atômicas que tipo usam bloqueios. |
|
Lê e retorna o valor armazenado. |
|
Usa um valor especificado para substituir o valor armazenado. |
Comentários
O tipo de Ty deve ser muito copyable.Isto é, usando memcpy copiar seus bytes deve produzir um válido Ty objeto compara igual ao objeto original.O compare_exchange_weak e compare_exchange_strong uso de funções de membro memcmp para determinar se dois Ty valores são iguais.Essas funções não usará um Ty-definidos operator==.As funções de membro do atomic usar memcpy para copiar os valores do tipo Ty.
Uma especialização parcial, atomic<Ty *>, existe para todos os tipos de ponteiro.A especialização permite a adição de um deslocamento para o valor de ponteiro gerenciado ou subtração de um deslocamento dela.Operações aritméticas levam um argumento do tipo ptrdiff_t e ajustar esse argumento, de acordo com o tamanho do Ty para ser consistente com endereço comum aritmético.
Existe uma especialização para cada tipo integral exceto bool.Cada especialização fornece um rico conjunto de métodos para operações aritméticas e lógicas atômicas.
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> |
Especializações integrais derivadas correspondente **atomic_**integral tipos.Por exemplo, atomic<unsigned int> é derivado de atomic_uint.
Requisitos
Cabeçalho: atômica
Namespace: std