Some MSVC headers have preprocessor macros to determine minand max. This is bad for many reasons. Firstly, they are not reserved names, and secondly, there are standard library functions with the same name.
So, MSVC or something violated the rules and code, defining minit maxas macros, and use undefis a workaround to fix this problem.
. , , , .