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