【问题标题】:error C2143: syntax error : missing ';' before ''template<''错误 C2143:语法错误:缺少“;”在''模板<''之前
【发布时间】:2014-07-14 06:39:40
【问题描述】:

我收到此错误error C2143: syntax error : missing ';' before ''template&lt;'' 尝试构建项目时。所以如果有人可以请告诉我如何解决这个错误。

【问题讨论】:

  • 提示:要解决此类问题,请将其减少到仍然会出现相同问题的最小情况。那么它可能会更明显。
  • 贴文提示:贴出“error on line 90”时,实际指出你的代码的哪一行是第90行。
  • 我猜应该是 template &lt;typename Scalar&gt; PCL_EXPORTS bool 。然而,这仍然很可疑,因为模板函数必须在实例化时完全可见。这是来自 PCL 的实际文件还是有人在模板位中编辑过?
  • @MattMcNabb 感谢 Matt 提供的 cmets,我已修改问题以指定错误行。我会尝试你的建议并让你知道。不知道你问的是哪个模板?如果我的问题看起来微不足道,我很抱歉。再次感谢马特
  • @MattMcNabb 谢谢马特!!!这做到了。因此,如果您可以将其发布为接受它的答案。再次感谢

标签: c++ visual-studio-2010 templates header-files


【解决方案1】:

的那一行
PCL_EXPORTS bool template <typename Scalar> 

应该是

template <typename Scalar> PCL_EXPORTS bool

可能PCL_EXPORTS__declspec(dllexport),通常这些东西必须在template&lt;...&gt; 之后。

我检查了一下,最新下载的 PCL 中没有这个模板,所以我猜它是某人制作的一个分支,它依赖于他们使用的任何编译器的属性。

一般来说,在函数模板上执行dllexport 是一团糟。但既然你说这个改变似乎可以解决它,也许蠕虫现在还留在罐子里!

【讨论】:

  • +1 但从上面的但出现了其他链接错误评论,蠕虫似乎没有在罐子里停留太久:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
相关资源
最近更新 更多