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