Netbeans IDE:std :: tr1上的C ++语法错误

时间:2011-01-12 13:41:05

标签: c++ netbeans syntax

说我有类似的东西:

#include <vector>
#include <algorithm>
#include <tr1/functional>

void bar(int value) {
   // do something with value
}

void foo() {
   // v is a std::vector<int>
   std::for_each(v.begin(), v.end(),
       std::tr1::bind(&bar, std::tr1::placeholders::_1)); // netbeans marks bind and placeholders
}

Netbeans将绑定/占位符标记为“无法解析标识符...”。 并且它也不会自动完成...

奇怪的事实是,它似乎没有问题自动填充#include <tr1/functional> 正确配置CodeAssistant路径。它不标记 _1 std::tr1::placeholders::_1中也是“无法解决......”。

但编码很好。

有关配置/查找内容的任何提示?在完美的代码上看到很多“错误”标记非常烦人。

由于

1 个答案:

答案 0 :(得分:0)

我很容易认为Netbeans的解析器无法正确解析std::tr1中的某些内容。

std::tr1不是C ++ 03的一部分,但很可能是C ++ 0x的一部分;因此,许多STL实现使用其他C ++ 0x特性来实现它,例如GCC 4.5.2提供的std::tr1::bind被实现为可变参数模板函数。

如果Netbeans的解析器还不支持可变参数模板,它将无法解析它,结果就是你得到的。

我在QtCreator上遇到了类似的问题(doesn't even support namespace aliases)。

如果是这种情况,您只需等待更新。如果尚未提交错误报告,您可以提交错误报告。