std::min error C2059: 语法错误:“::” 的解决方法
下面这段代码:
size_t n = std::min(count_, num_elements);
编译会出现这样的错误:
1> error C2059: 语法错误:“::”
1> error C2589: “(”:“::”右边的非法标记
解决办法
将std::min
用括号括起来,问题解决。
size_t n = (std::min)(count_, num_elements);
同样的问题
dist_index_.resize(capacity_, DistIndex(std::numeric_limits<DistanceType>::max(),-1));
同样的解决方法
解决办法都是一样的,把std::numeric_limits<DistanceType>::max
用括号括起来:
dist_index_.resize(capacity_, DistIndex((std::numeric_limits<DistanceType>::max)(),-1));
为什么会出现这个错误
参考网站:
http://stackoverflow.com/questions/2789481/problem-calling-stdmax
你的程序使用PCL库,并且在程序中包含了头文件#include <windows.h>
。
windows.h
这个库里面定义了一些宏,比如min,max,PCL库里面使用了同样名字的宏,但是不是windows.h
里面的宏。
现在具体,我也不清楚是怎么回事,所以我不敢瞎写。
参考网站:
http://blog.csdn.net/ben_ben_niao/article/details/45971095