即使在C++中没有反射,visual studio intellisense如何识别类中的函数和属性?

Xin*_*nus 2 c++ reflection intellisense visual-studio

我想列出c ++类中的属性和函数.该功能是否已在任何库中实现?visual studio intellisense是否使用任何库?该库是否可以从Microsoft公开获取?

Pau*_*ham 8

Visual Studio会解析您的代码,这就是它所知道的.你需要做同样的事情.


Chr*_*ris 5

他们使用适当的格式存储智能感知信息(它们保存为NCB文件).如果出现问题,您可以删除这些文件以强制VS重新创建其智能感知数据库.

然后,他们扫描头文件以获取类信息以及依赖关系,然后构建NCB文件以供将来参考.

不,此库不可供个人使用.

C#中的Intellisense比C++中的智能感知要好得多VS2010会看到C++具有与C#目前相同的智能感知功能.


Mic*_*urr 5

VISUAL C++团队维护一个博客已经有大约它将如何智能感知在过去的工作,以及如何在今后的工作中几个非常漂亮的文章:

基本上,他们通过解析标题和其他源文件来构建他们自己的"反射"数据库(当前和过去的版本VS VS中的.ncb文件,使用从VS2010开始的紧凑型SQL数据库) - 使用自定义解析器和使用自定义解析器完成的解析编译器的合作.

显然,至少有一些信息可以在VCCodeModel和Visual Studio可扩展性模型提供的相关接口中找到.我不知道可扩展性模型的工作原理或使用起来有多容易.