Compartilhar via


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

Hh874651.collapse_all(pt-br,VS.110).gifConstrutores públicos

Nome

Descrição

atomic::atomic construtor

Constrói um objeto atômico.

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

Nome

Descrição

Operador Ty atomic::Operator

Lê e retorna o valor armazenado.(Método atomic::Load)

atomic::Operator = operador

Usa um valor especificado para substituir o valor armazenado.(Método atomic::Store)

atomic::Operator + + operador

Incrementa o valor armazenado.Usado somente por especializações integral e ponteiro.

atomic::Operator + = operador

Adiciona um valor especificado para o valor armazenado.Usado somente por especializações integral e ponteiro.

atomic::Operator - operador

Decrementa o valor armazenado.Usado somente por especializações integral e ponteiro.

atomic::Operator = operador

Subtrai um valor especificado de valor armazenado.Usado somente por especializações integral e ponteiro.

atomic::Operator & operador =

Executa um bit a bit and em um valor especificado e o valor armazenado.Usado somente por especializações integrais.

atômica:: operator| = operador

Executa um bit a bit or em um valor especificado e o valor armazenado.Usado somente por especializações integrais.

atomic::Operator ^ = operador

Executa um bit a bit exclusive or em um valor especificado e o valor armazenado.Usado somente por especializações integrais.

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

Nome

Descrição

Método atomic::compare_exchange_strong

Realiza uma atomic_compare_and_exchange operação em this e retorna o resultado.

Método atomic::compare_exchange_weak

Realiza uma weak_atomic_compare_and_exchange operação em this e retorna o resultado.

Método atomic::fetch_add

Adiciona um valor especificado para o valor armazenado.

Método atomic::fetch_and

Executa um bit a bit and em um valor especificado e o valor armazenado.

Método atomic::fetch_or

Executa um bit a bit or em um valor especificado e o valor armazenado.

Método atomic::fetch_sub

Subtrai um valor especificado de valor armazenado.

Método atomic::fetch_xor

Executa um bit a bit exclusive or em um valor especificado e o valor armazenado.

Método atomic::is_lock_free

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.

Método atomic::Load

Lê e retorna o valor armazenado.

Método atomic::Store

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

Consulte também

Referência

<atomic>

Outros recursos

Arquivos de cabeçalho