Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: kambala от Ноябрь 12, 2011, 02:19



Название: [Решено] вызов std::numeric_limits<T>::max() перекрывается макросом
Отправлено: kambala от Ноябрь 12, 2011, 02:19
Здравствуйте. При попытке вызвать std::numeric_limits<T>::max() под виндой компилятор (от студии 2008) ругается, поскольку макрос max(a,b) уже существует в windef.h. Для избегания этого используется очень некрасивый костыль:
Код
C++ (Qt)
#if defined(Q_WS_WIN32) && defined(max)
#undef max
#endif
Подскажите пожалуйста можно ли как-то по-нормальному оградиться от этого макроса.


Название: Re: вызов std::numeric_limits<T>::max() перекрывается макросом
Отправлено: kambala от Ноябрь 20, 2011, 22:18
всё оказалось немного проще: вызывать нужный метод через (std::numeric_limits<T>::max)() или вписать #define NOMINMAX