//—————————————————–【转自:GIS帅】—————————————————————-//
今天在测试程序时发现,PCL包含目录下pcl-1.8\pcl\io\ply\io_operators.h中,
std::numeric_limits::max()会出现编译错误,
warning C4003: “max”宏的实参不足
error C2589: “(”:“::”右边的非法标记
error C2059: 语法错误:“::”
error C2181: 没有匹配 if 的非法 else
原因:Windows系统中Windef.h中定义了
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
所以会产生编译错误
解决方法:将 std::numeric_limits::max()改为 (std::numeric_limits::max)()