Следующий код c/c ++:
long long foo = -9223372036854775808LL; // -2^63
< /code>
compiles (g ++) с предупреждением < /p>
Интеллектуальная постоянная настолько велика, что он не знака. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52661. Теперь я понимаю, почему GCC дает это предупреждение. К сожалению, ответ на отчет об ошибке не объяснил причину такого поведения очень хорошо. Легче анализировать, как это предлагается в ответ на отчет об ошибке. Почему? Какой -то другой стандарт?
Подробнее здесь: https://stackoverflow.com/questions/650 ... -rationale