一个非常简单的问题。因为我是一个半路出家的程序员,而且比较菜,所以想在这里问一下。我使用 c++eigen 库写了一个算法,现在想把他改成 GPU 格式的,所以需要
#include <amp.h> #include <amp_math.h> using namespace concurrency; using namespace precise_math; 这两个头文件 但是本来可以编译的程序却出现了一大堆错误, C2632 int 后面的 int 非法 c2143 语法错误等 是我命名空间使用冲突了吗还是怎么回事儿? 求助!
1
gnaggnoyil 2018-04-06 11:28:48 +08:00 1
你连具体的错误信息都没给出让人怎么分析...MSVC 的 C2632 直接原因是把一个指代 type 的 name 给企图挪作它用,LZ 这种情况可能是两个 namespace 的名字一个用于指代类型一个用于指代别的……
|
2
MeteorCat 2018-04-06 11:30:00 +08:00 via Android 1
可能命名空间里面重写定义了 int 类型,math 高精度库常常会自己定义一个高精度数值类型,可能是这样这样导致冲突了,试下单独 using 不要直接 using namespace
|
3
15584185420 OP @MeteorCat 直接 using convurrency 而不是 using namespace concurrency;?
|
4
15584185420 OP @gnaggnoyil
C:\Program Files (x86)\Windows Kits\8.1\include\shared\minwindef.h:157: error: C2632: “ int ”后面的“ int ”非法 C:\Program Files (x86)\Windows Kits\8.1\include\shared\minwindef.h:158: error: C2632: “ char ”后面的“ char ”非法 C:\Program Files (x86)\Windows Kits\8.1\include\um\winnt.h:726: error: C2632: “__int64 ”后面的“ long ”非法 C:\Program Files (x86)\Windows Kits\8.1\include\um\wingdi.h:5011: error: C2143: 语法错误: 缺少“)”(在“常量”的前面) C:\Program Files (x86)\Windows Kits\8.1\include\um\winuser.h:8274: error: C2059: 语法错误:“常量” |
5
15584185420 OP #include <djDraw.h>
#include <Eigen> #include <iostream> #include<inverse.h> #include<forwardfuction.h> #include<basicfuction.h> using namespace Eigen; using namespace std; 新添加了:“ #include <amp.h> #include <amp_math.h> using namespace concurrency; using namespace precise_math; |
6
15584185420 OP |