Re:C++11/14/17 Features in VS 2015 RC
by StephanTLavavej on Wednesday April 29, 2015 @07:25PM
(#9462491)
In fact, VS's STL has to defend itself against those macros. Since the user might have already included windows.h without NOMINMAX, what we do is parenthesize all mentions of min/max, which inhibits preprocessor expansion of function-like macros. Look at our declarations of std::min()/etc.
[ Parent
| on HN ]
> what we do is parenthesize all mentions of min/max
Oh! That explains some of the odd-looking code in <random>, since min and max are used as function names to determine the range of an RNG engine.
Re:C++11/14/17 Features in VS 2015 RC
by StephanTLavavej on Wednesday April 29, 2015 @07:57PM
(#9462619)
Bingo. We have a test that includes windows.h followed by all STL headers, to verify that we always remember the parens.