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