std::numeric_limits::max()编译错误-正解

转自:http://blog.chinaunix.net/uid-17102734-id-2830143.html

今天使用了一下STL中的z数值极限竟然编译不过,

std::numeric_limits::max()

出现如下错误: 

warning     C4003:     “max”宏的实参不足       
error     C2589:     “(”     :     “::”右边的非法标记

google了一下,原来是需要把max用括号括起来避免和windows定义的宏混淆

(std::numeric_limits::max)()

因为Windef.h中定义了

#ifndef max
#define max(a,b)            (((a) > (b)) ? (a) : (b))
#endif

所以会产生编译错误

你可能感兴趣的:(std::numeric_limits::max()编译错误-正解)