首页 > 解决方案 > YouCompleteMe 仅在以命名空间为前缀时显示构造函数

问题描述

如果我有一个包含标头的文件,那么 YouCompleteMe 可以很好地完成代码,除了构造函数之外,它的唯一工作方式是我为该类使用命名空间前缀。

这是一个示例,由头文件组成some_class.h

namespace types {
  class some_class {
    public:
      some_class() {};
      some_class(int) {};
      some_class(int, int) {};
      void some_function() {}
  };
}

和主文件:

#include "some_class.h"   // some_class is in namespace 'types'

using namespace types;

int main() {
   some_class a;      // YouCompleteMe doesn't suggest all the diff ctors I could use
   a.some_function(); // YouCompleteMe suggests autocompletion on my type

   types::some_class b; // Now YouCompleteMe shows all the different ctors I could use
}

为什么会发生这种情况,有没有办法解决它,因为我不想总是使用命名空间前缀?

标签: c++vimyoucompleteme

解决方案


推荐阅读