当使用vim插件YouCompleteMe C代码完成我偶然发现了一个问题。
使用嵌套模板类可以使完成正常工作。
使用嵌套模板类可以使完成正常工作。
考虑下面的例子来重现行为:
#include <vector>
template<class T>
class foo {
public:
void Init();
private:
struct bar {
int foobar;
};
bar one_bar;
std::vector<foo<T>::bar> some_bars;
};
template<class T>
void foo<T>::Init(){
one_bar.foobar = 0; // completion as expected
some_bars.at(0).foobar = 0; // no completion neither for "at" nor for "foobar"
}
“some_bars”的代码完成不工作,而“one_bar”正常工作。
如何完成此代码的工作?这个问题是否与设置相关,应该实际工作还是YCM中的错误?
我的系统是debian jessie / sid基于,vim版本7.4,YCM最新版本从GitHub。
编辑:
有类似的问题报告在YCMs错误跟踪:
https://github.com/Valloric/YouCompleteMe/issues/243
https://github.com/Valloric/YouCompleteMe/issues/530
似乎是一个bug在clang而不是在ycm。有人可以确认吗?
编辑2:
我在YCM问题跟踪器中打开了另一个问题。
https://github.com/Valloric/YouCompleteMe/issues/1170
目的是获得更多关于clang中的bug的信息,最后是在clang问题跟踪器中生成一个bug报告。
编辑3:
我遵循从RedX提出的程序,并喂我的代码在clang获得完成。
Clang没有为代码中讨论的位置提供任何建议。
这明显是为什么YCM没有在vim中提出建议的原因,它与YCM或vim无关。
clang问题跟踪器中的错误报告已提交:
http://llvm.org/bugs/show_bug.cgi?id=20973
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。


