C++ IDE:C++;std::tr1上的语法错误
假设我有这样的东西:C++ IDE:C++;std::tr1上的语法错误,c++,netbeans,syntax,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::tr
#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
}
#包括
#包括
#包括
空心条(int值){
//做有价值的事
}
void foo(){
//v是一个std::向量
std::for_each(v.begin(),v.end(),
std::tr1::bind(&bar,std::tr1::占位符::_1));//netbeans标记bind和占位符
}
NetBeans将绑定/占位符标记为“无法解析标识符…”。
而且它也不会自动完成
奇怪的事实是,它没有自动完成#include
的问题,这似乎表明
代码助手路径配置正确。它不标记\u 1
在std::tr1::占位符::_1
中也显示为“无法解析…”
不过,代码编译得很好
有关于配置/查找什么的提示吗?在完美的代码上看到大量的“错误”标记是非常烦人的。我倾向于认为Netbeans的解析器无法正确解析
std::tr1
中的某些内容
std::tr1
不是C++03的一部分,但很可能是C++0x的一部分;因此,许多STL实现使用其他C++0x特性来实现它,例如GCC4.5.2提供的std::tr1::bind
作为可变模板函数实现
如果Netbeans的解析器还不支持可变模板,它将无法解析它,结果就是您得到的结果
我在QtCreator(哪个)上也有类似的问题
如果是这种情况,您只需等待更新。如果尚未提交bug报告,您可以提交。ops。。。你说得对。。。EndEdit广泛使用NETBeCon来开发C++,并接受了它不能正确解析Tr1和Boost的一些事实。我还没有找到任何方法来解决这个问题,所以我很高兴看到有人能找到解决方案@Shunz先生:出于好奇,每次重新启动NetBeans时,它无法解析的符号是否一致?@JaredC是的,它们总是相同的符号。但有时它也无法成功解析某些标准STL::iterator typedefs。我想你是对的,我正在等待7.0版本的PHP5.3和HTML5的支持;)即使这个页面:似乎表明C++增强只是为了指针对象自动转换“.”到“->”。