int max =std::numeric_limits<int>::max();
根据错误提示:
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 宏冲突问题。
问题应该是以上两个头文件的宏定义出现了冲突。
解决:
1. 通过括号“()”来避免预编译器报错。
int max = (std::numeric_limits<std::streamsize>::max)();
2. 取消宏定义的实现
#ifdef max
#undef max
#endif