4
在源代码中,我看到最小和最大值未定义。这可能是什么原因?未定义最小和最大宏
// remove stupid MSVC min/max macro definitions
#ifdef WIN32
#undef min
#undef max
#endif
在源代码中,我看到最小和最大值未定义。这可能是什么原因?未定义最小和最大宏
// remove stupid MSVC min/max macro definitions
#ifdef WIN32
#undef min
#undef max
#endif
一些MSVC报头具有预处理器宏来定义min
和max
。这很糟糕,原因很多。首先,它们不是保留的名称,其次是具有相同名称的标准库函数。
所以MSVC或任何通过将min
和max
定义为宏来破坏规则和代码,并且使用undef
是解决该问题的解决方法。
请参阅this related question,它显示了定义如何破坏代码。
也许作者需要重新定义它们?或者他们干扰作者创建的实际最小/最大功能。 – bblincoe
也许他们想要移除最小和最大的愚蠢的MSVC宏;-) – dasblinkenlight
@bblincoe:或干扰标准库头声明的实际最小/最大函数。 –