Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выражения
Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выражения.
Выражения, отмеченные этим средством проверки, следуют подробным спецификациям для cvalue выражений из документации MISRA® C ++.
Если вы выполняете выражение и позже бросаете результат к другому типу, бросок не оказывает влияния на базовый тип оценки (самый широкий из типов данных операнда в выражении). Например, в этом примере, сумме двух short операнды брошены к более широкому типу int.
short op1; short op2; int res; res= static_cast<int> (op1 + op2);
int из-за более позднего броска.Явное интегральное или преобразование с плавающей точкой не должно увеличивать размер базового типа cvalue выражения.
Сложное выражение базового типа typeBeforeConversion май только быть брошенным к более узкому целочисленному типу того же самого со знаком, однако целевым типом является typeAfterconversion.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
| Группа: Выражения |
| Категория: необходимый |