std::numeric_limits::max() std::numeric_limits::min()編譯錯誤

查志強發表於2016-09-09

【原文:http://blog.csdn.net/manyikaimen/article/details/51565321

今天使用了一下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
所以會產生編譯錯誤

相關文章