因为preprocessor在编译之前解析max,所以出错.
可以使用括弧,來避免 preprocessor 作怪。也就是說,程序改成这么写:
(std::max)(value1, value2);
// or
(std::numeric_limits<Foo>::max)();
\