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