0
下面是一些示例代码,说明了这个问题。
它编译和运行正确,但VS2010编辑智能感知抱怨有hold
变量和显示以下消息有没有任何解决方法来处理这个虚假的VS2010 C++智能感知错误
智能感知:一个非静态成员引用必须是相对于一个 特定对象
class tester
{
public:
void test()
{
int outer[] = {1,2,3};
int inner[] = {4,5,6};
std::for_each(outer, outer + _countof(outer), [&](int o) {
std::for_each(inner, inner + _countof(inner), [&](int i) {
hold.push_back(i + o);
});
});
}
private:
std::vector<int> hold;
};
int main(int argc, char* argv[])
{
tester().test();
return 0;
}
注意:如果只有一个级别的for_each(例如外部)很高兴
是否有其他人遇到过这种情况,如果有的话,是否有办法稍微改变它,这样智能感知就很开心,或者我坚持使用红色的波浪线?
更新: 我已经下载了VS11的预览它很满意代码 - 没有波浪线,所以至少已经修复了下一个版本。
这是一个用一个解析器实现语句补全解析器的一个相当不可避免的副作用,一个解析器由Edison Design Group设计,另一个由编译器解析器实现,这个解析器是由Microsoft自行开发的着名的错误/接受以前的语法编译器。 EDG拥有正确的诀窍,让他们同意是一场永无止境的战斗。我可以在哪里签名*从不*必须处理*那个问题?作为一名救援人员或警方侦探,他们在20年后才会退休。 –