如何使用YouCompleteMe在vim中启用完成C模板类
当使用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。 编辑: 似乎是一个bug在clang而不是在ycm。有人可以确认吗? 编辑2: 目的是获得更多关于clang中的bug的信息,最后是在clang问题跟踪器中生成一个bug报告。 编辑3: clang问题跟踪器中的错误报告已提交:
我认为,根据C的规则,你不能在这种情况下得到完成。
没有类型T的知识,我们不知道什么方法std :: vector< T>将有,因为每个instansiation的一个模板在C可以有不同的方法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |