Код: Выделить всё
#ifdef _DEBUG
#define CHECK_SIGNED(v) if((v) == -(v)){}
#else
#define CHECK_SIGNED(v)
#endif
Код: Выделить всё
INT rr = 0;
CHECK_SIGNED(rr);
Код: Выделить всё
UINT rr = 0;
CHECK_SIGNED(rr);
ошибка C4146: унарный минус оператор применен к беззнаковому типу, результат
все еще без знака
Поэтому теперь я пытаюсь придумать аналогичную проверку для беззнакового типа переменная. Есть предложения?
PS. Хотя я использую VS 2017, было бы неплохо сделать его обратно совместимым со старыми стандартами C++.
Подробнее здесь: https://stackoverflow.com/questions/575 ... d-unsigned
Мобильная версия