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