Compartilhar via


Promoções integrais

Objetos de tipo integral podem ser convertidos em outro tipo de integral mais largo (ou seja, um tipo que possa representar um conjunto maior de valores).Esse tipo de expansão de conversão é chamado de "promoção integral". Com a promoção integral, você pode usar o seguinte em uma expressão onde quer que o outro tipo integral pode ser usado:

  • Objetos, literais e constantes do tipo char eshort int

  • Tipos de enumeração

  • intcampos de bits

  • Enumeradores

Promoções de C++ são "valor-preservando." Ou seja, o valor após a promoção é garantido para ser o mesmo que o valor antes que a promoção.Em preservar o valor promoções, objetos de tipos integrais mais curtos (como campos de bits ou objetos do tipo char) são promovidos digitar int se int pode representar toda a gama do tipo original.Se int não pode representar a toda a gama de valores, e em seguida, o objeto seja promovido para digitar unsigned int.Embora essa estratégia é o mesmo usado pelo ANSI C, preservando o valor conversões preserva o "signedness" do objeto.

Preservando o valor e promoções que preservam signedness normalmente produzem os mesmos resultados.No entanto, eles podem produzir resultados diferentes se o objeto promovido é um destes procedimentos:

  • An operand of /, %, /=, %=, <, <=, >, or >=

    Esses operadores dependem de sinal para determinar o resultado.Portanto, o promoções preservando o valor e a preservação de sinal de produzirem resultados diferentes quando aplicado a esses operandos.

  • O operando esquerdo do >> ou >> =

    Esses operadores tratam assinadas e quantidades de forma diferente ao executar uma operação de shift.Para quantidades assinadas, a mudança de um direito de quantidade faz com que o bit de sinal ser propagada para as posições de bit tornadas vagas.Para quantidades não assinadas, as posições de bit tornadas vagas são preenchidas com zero.

  • Um argumento para uma função sobrecarregada ou operando de um operador sobrecarregado que varia de acordo com o signedness do tipo desse operando para o argumento de correspondência.(Consulte Operadores sobrecarregados para obter mais informações sobre a definição de sobrecarga nos operadores.)

Consulte também

Referência

Conversões padrão