std::numeric_limits::max() error C2589: '(' : illegal token on right side of '::' 解決辦法

int max =std::numeric_limits<int>::max();
     根據錯誤提示:web

f:\code\cpp\webspider\main.cpp(47) : warning C4003: not enough actual parameters for macro 'max'
f:\code\cpp\webspider\main.cpp(47) : error C2589: '(' : illegal token on right side of '::'
f:\code\cpp\webspider\main.cpp(47) : error C2059: syntax error : '::'
緣由: STL的numeric_limits::max()和VC6 min/max 宏衝突問題

問題應該是以上兩個頭文件的宏定義出現了衝突。ide

解決: 經過括號「()」來避免預編譯器報錯。int max = (std::numeric_limits<std::streamsize>::max)();   便可。
相關文章
相關標籤/搜索