c++奇怪的编译错误,严重错误
C++ weird compilation errors, something deeply wrong
我正在尝试使用第三方c++源代码(机器人SLAM的TORO框架,您可以通过svn与:svn co https://www.openslam.org/data/svn/toro获得),通过尝试将其封装在DLL中以便稍后在我的c#代码中使用。然而,我得到了各种各样的错误,只是通过包括源文件到我的项目。例如,对于下面的代码
void TreePoseGraph<Ops>::revertEdge(TreePoseGraph<Ops>::Edge * e){
revertEdgeInfo(e);
Vertex* ap=e->v2;
e->v2=e->v1;
e->v1=ap;
}
得到以下错误:
错误C2182: 'revertEdge':非法使用'void'类型
错误C2470: 'AISNavigation::TreePoseGraph::revertEdge':看起来像一个函数定义,但没有参数列表;跳过显体
错误C2072: 'AISNavigation::TreePoseGraph::revertEdge':初始化函数
当然,我做的第一件事是检查它是否包括(revertEdge)在正确的头,并在stdAfx.h,当然它是无处不在。此外,智能感知识别一切,可以为我指出一切的来源,所以这个项目似乎没有什么缺失。然而,我得到了大量类似的错误。
我确定我在开始的时候做了一些非常错误的事情,这导致了所有这些无意义的错误消息(好吧,可能有1-2个合理的错误消息,但其余的只是雪崩的结果)。你能不能给点建议,是什么导致了这么多错误信息?
只是猜测,但是您可能需要在TreePoseGraph<Ops>::Edge
之前添加一个typename
,以便告诉编译器Edge
实际上是一个类型,即
void TreePoseGraph<Ops>::revertEdge(typename TreePoseGraph<Ops>::Edge * e)
{
// ...
}
我认为它应该是这样的:
template<class Ops> void TreePoseGraph<Ops>::revertEdge(TreePoseGraph<Ops>::Edge * e) {
// ...
}
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- Websocket++ 错误:收到错误handle_transport_init TLS 握手失败
- 为什么我使用 std::copy() 收到运行时错误(分段错误)?
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- C++ 分段错误:11 错误,同时编码将两个数字相加的链接列表
- 为什么我的代码包含错误分段错误(核心转储)?
- C++ Schannel POST 400 错误代码错误请求
- 未知C++错误:致命错误:glibc检测到无效的stdio句柄
- CPPRestSdk给出错误SSL错误:WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA
- "pip install openexr"上的语法错误:错误的编译器?
- 需要找到3个小错误-内存错误
- 释放内存时出现严重错误
- 带有严重错误处理的简单添加代码
- 我的链接列表代码出现了严重错误
- 严重错误->c0000374
- Boost.Log - 记录应用程序的严重错误
- c++奇怪的编译错误,严重错误
- 检测到严重错误 c0000374 - C++ dll 将指针断开分配给 C# 的内存返回
- 堆栈推送导致严重错误