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