Объединенные promotion

Объекты объединенного типа можно преобразовать в другой более широкому целочисленному типу (то есть типу, который может представлять большой набор значений).Этот тип называется "расширяющие преобразования" промотированием слияния. С объединенным промотированием можно использовать следующее в выражении, где другой целочисленный тип, можно использовать:

  • Объекты, литералы и константы типа char и short int

  • Типы перечисления

  • int битовые поля

  • Перечислители

Promotion C++ "значение-сохраняют". Таким образом, гарантируется, что значение promotion таким же, как значение до промотированием.В значение-сохраняя промотированиях объекты более коротких целочисленных типов (таких как битовые поля или объекты типа charповысьте уровень) для ввода int If int может представлять полный диапазон исходного типа.If int не может представлять полный диапазон значений, а объект повышенн уровень для ввода unsigned int.Хотя эта стратегия такая же, как используется ANSI c, значение-сохраняя преобразования не сохраните "signedness" объекта.

Значение-сохраняющ " promotion " и " promotion ", которые сохраняют продукцию signedness обычно те же результаты.Однако они могут дать разные результаты, если повышенн уровеньый объект одно из следующих действий.

  • Операнд /" %" /=" %=" <" <=" **>**или >=

    Эти операторы зависят от символа для определения результата.Поэтому значение-сохранять и знак-сохранять promotion приводят к различным результатам при применении к данным операндам.

  • Левый операнд >> OR >>=

    Эти операторы обрабатываются подписанных и неподписанных количества иначе при выполнении операции миграции.Для подписанных чисел, сдвигать право объема бит знака вызывает распространять в vacated битовые позиции.Для чисел без знака, нул-заполнены vacated битовые позиции.

  • Аргумент перегружанным функции или операнду перегруженного оператора который зависит от типа signedness выполнения операнда для сопоставления аргумента.(См. Перегруженные операторы дополнительные сведения об определении перегруженные операторы.)

См. также

Ссылки

Стандартные преобразования