Предупреждение C26450
Арифметический переполнение: операция "оператор" вызывает переполнение во время компиляции. Использование более широкого типа для хранения операндов (io.1)
Замечания
Это предупреждение указывает на то, что арифметическая операция была вероятностной потерей во время компиляции. Его можно утверждать, когда операнды являются константами времени компиляции. В настоящее время мы проверка левый сдвиг, умножение, добавление и вычитание операций для таких переполнений.
Предупреждение C4307 аналогично проверка в компиляторе Microsoft C++.
Имя анализа кода: RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY
Примеры
int multiply()
{
const int a = INT_MAX;
const int b = 2;
int c = a * b; // C26450 reported here
return c;
}
Чтобы исправить это предупреждение, используйте следующий код.
long long multiply()
{
const int a = INT_MAX;
const int b = 2;
long long c = static_cast<long long>(a) * b; // OK
return c;
}
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по