软讯网络 > 编程语言 > C/C++ > 无法使用stl中的max/min的原因
【标 题】:无法使用stl中的max/min的原因
【关键字】:
stl,max/min
【来 源】:http://www.cppblog.com/think/archive/2007/01/13/17594.html
无法使用stl中的max/min的原因
问题:使用std::numeric_limits<int>::max(),编译器报warning C4003: “max”宏的实参不足。使用std::max或定义max方法也报错。
原因: 由头文件windows.h中的宏max引起。windows.h头文件中定义了宏max和min,preprocessor认为我们使用的是宏max/min,所以报错。
解决方案:用括号将方法的全名称括起来。
例:
(std::numeric_limits<Byte>::max)()
(std::max)( 1, 2 );
struct Number
{
?? ?int (max)();
};
参见:http://www.jeffhung.net/blog/articles/jeffhung/626/