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