Joh*_*åde 87
(std::min)(x,y)
Run Code Online (Sandbox Code Playgroud)
括号围绕min防止宏扩张.这适用于所有函数宏.
#undef min在#include <>指令之后,在代码中使用.
#include <...> // bad header that defines `min` macro
#ifdef min
#undef min
#endif
// rest f code.
Run Code Online (Sandbox Code Playgroud)
附录:如果您之后需要保留min宏的值,可以在某些编译器上使用非便携式解决方案暂时禁用其定义.例如,微软的C++编译器有一个push_macropragma,似乎也得到了GCC的支持.