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