tcbrindle / NanoRange

Range-based goodness for C++17
Boost Software License 1.0
358 stars 28 forks source link

Prevent min / max macro expansion on Windows #111

Open vcarreira opened 3 years ago

vcarreira commented 3 years ago

On Windows some modules might includes the windows.h header, which then defines macros for min and max, among other macros. The uniform_random_bit_generator_concept is susceptible to this problem and fails to compile.

The proper way of handling this issue is to prevent the macro expansion by enclosing the macro names in parenthesis.

The other known workaround is to define the NOMINMAX macro (but this is user-configurable and not suitable for libraries).