Hungry Mind , Blog about everything in IT - C#, Java, C++, .NET, Windows, WinAPI, ...

min max puff puff

Недавно мучался, не мог понять, почему не компилируется код std::numeric_limits<size_t>::max(). Долго тупил, пока не заметил, что компилятор пишет warning о нехватке параметров для макроса.

Оказалось, в файле WinDef.h есть такой код:

#ifndef NOMINMAX

#ifndef max
#define max(a,b)            (((a) > (b)) ? (a) : (b))
#endif

#ifndef min
#define min(a,b)            (((a) < (b)) ? (a) : (b))
#endif

#endif  /* NOMINMAX */

Идиотизм, честное слово. Перед включением Windows.h нужно определить NOMINMAX: #define NOMINMAX.

0 коммент.:

Отправить комментарий

Copyright 2007-2011 Chabster