News for hackers. Stuff that matters.
Re:C++11/14/17 Features in VS 2015 RC by mmozeiko on Wednesday April 29, 2015 @07:11PM (#9462431)
Compatibility for old code? Just "#define NOMINMAX" before including windows.h
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.
Re:C++11/14/17 Features in VS 2015 RC by TillE on Wednesday April 29, 2015 @07:46PM (#9462585)
> 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.