Russian Qt Forum
Ноябрь 22, 2024, 19:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] вызов std::numeric_limits<T>::max() перекрывается макросом  (Прочитано 3879 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« : Ноябрь 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
Подскажите пожалуйста можно ли как-то по-нормальному оградиться от этого макроса.
« Последнее редактирование: Ноябрь 20, 2011, 22:18 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Ноябрь 20, 2011, 22:18 »

всё оказалось немного проще: вызывать нужный метод через (std::numeric_limits<T>::max)() или вписать #define NOMINMAX
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.105 секунд. Запросов: 22.