解决error C2059: 语法错误:“::”问题

错误代码提示:

1>f:\opencv\opencv\build\include\opencv2\flann\lsh_table.h(266): error C2059: 语法错误:“::”f:\opencv\opencv\build\include\opencv2\flann\lsh_table.h(266): error C2589: “(”:“::”右边的非法标记
 const size_t key_size_upper_bound = std::min(sizeof(BucketKey) * CHAR_BIT + 1, sizeof(size_t) * CHAR_BIT);

上面便是主要出错的代码。

只需要在”std::min“加个括号即可。即:

    const size_t key_size_upper_bound = (std::min)(sizeof(BucketKey) * CHAR_BIT + 1, sizeof(size_t) * CHAR_BIT);

编译运行。结果如下图所示:

时间: 2024-12-14 07:15:09

解决error C2059: 语法错误:“::”问题的相关文章

关于CUDA C 项目中“ error C2059: 语法错误:“<” ”问题的解决方法

该问题的关键在于理解CUDA项目中C\C++文件需要由c++编译器进行编译,而CUDA C的源文件需要由CUDA的编译器nvcc.exe进行编译. 发生该语法错误的原因是cu文件被C++编译器所编译,C++编译器无法识别 "<<<",导致报错. 为什么cu文件会被C++编译器所编译呢?原因在于我们使用#include将cu文件包含到了C++文件中.对于#include的用途,更简单的理解就是把几个文件合并成一个文件,所以,当编译C++文件中,包含其中的cu文件也会被编

vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”

利用vs2012编译ffmpeg出现以下错误: libavdevice/avdevice.c(38) : error C2059: 语法错误:"." libavdevice/avdevice.c(40) : error C2059: 语法错误:"," libavdevice/avdevice.c(42) : error C2059: 语法错误:"," libavdevice/avdevice.c(44) : error C2059: 语法错误:&

error C2589: &ldquo;(&rdquo;: &ldquo;::&rdquo;右边的非法标记 error C2059: 语法错误 : &ldquo;::

1. 错误输出 ./zlibrary/ui/src/win32/w32widgets/W32VBorderBox.cpp(114) : error C2589: "(": "::"右边的非法标记    ./zlibrary/ui/src/win32/w32widgets/W32VBorderBox.cpp(114) : error C2059: 语法错误 : "::"2. 错误代码举例 size.Width = std::max(size.Wid

[ISSUE][PENDING]cocos2d-x ... error C2059: 语法错误:“-”

在定义的头文件中并没有使用到任何coco2d-x的东西,提示错误 error C2059: 语法错误:“-” (..\..\src\Xxxx.cpp)error C2143: 语法错误 : 缺少“;”(在“}”的前面) (..\..\src\Xxxx.cpp)error C2238: 意外的标记位于“;”之前 (..\..\src\Xxxx.cpp)error C2575: “updateQuadWithParticle”: 只有成员函数和基可以是虚拟的 (..\..\src\Xxxx.cpp)

struct init 的时候报错 error C2059: 语法错误 &quot;{&quot;

比如: struct kk { int a; int b; }; kk val[2]; val[0] = {0, 0}; val[1] = {1, 1}; 在有些编译器下能通过,在vs2012上编译不过 网上:原来这个新feture Designated initializers 在 vs2012 上支持,需要升级到 vs2013 那就只能有老的初始化的方法了

VS 报cmath(19): error C2061: 语法错误: 标识符&ldquo;acosf&rdquo; 错误

这是因为我在.c文件中用了 #include <iostream> using namespace std; 这样编译的时候就报: 出现错误类型如下:1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cmath(19): error C2061: 语法错误: 标识符"acosf"1>c:\program files (x86)\microsoft visual studio 10.0

VC++编译错误error C2065: “HANDLE”: 未声明的标识符及添加winbase.h后提示winbase.h(243): error C2146: 语法错误: 缺少“;”(在标识符“Internal”的前面)的解决办法

问题描述: VC++程序编译时提示错误:error C2065: "HANDLE": 未声明的标识符等众多错误提示,如下所示: error C2065: "HANDLE": 未声明的标识符 error C2146: 语法错误: 缺少";"(在标识符"hFind"的前面) error C2065: "hFind": 未声明的标识符 error C2065: "INVALID_HANDLE_VALUE

常见错误3——错误2 error C2143: 语法错误 : 缺少“;”(在“}”的前面)

常见错误3——错误2  error C2143: 语法错误 : 缺少“;”(在“}”的前面) (2012-08-12 12:07:08) 转载▼ 标签: 杂谈 分类: 编程常见错误集 很简单的一段程序,却出现如上错误,原因很简单,还是要注重细节! 01 #ifndef COLOR_H02 #define COLOR_H03 04 namespace GrabCut_DZY05 {06  class Color{07  public:08   Color();09  private:10   fl

error C2143: 语法错误 : 缺少“;”(在“&amp;”的前面)

报错: error C2143: 语法错误 : 缺少";"(在"&"的前面) 代码: #include <iostream> ostream & << (ostream& os, int i) { return os << i ; } 解决方法:加入using namespace std; 解决报错后代码: #include <iostream> using namespace std; ost