У меня есть следующий код:
unsigned int a;
if (a > numeric_limits<int>::max())
do_stuff();
При компиляции gcc выдает предупреждение
: «сравнение между знаком и без знака»
Хорошо, я понимаю
Но со следующим кодом:
unsigned int a;
if (a > (numeric_limits<int>::max()))
do_stuff();
Предупреждение больше не отображается, и я действительно не знаю почему ... Есть ли логическая причина длятакое поведение или я что-то не так делаю?!