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:或干擾標準庫頭聲明的實際最小/最大函數。 –