当然, 整个过程也不是一帆风顺的, 在对 http://CppAst.Net 做了几个关键功能的 PR 之后, 我们已经可以基于 http://CppAst.Net 很好的完成我们需要的代码解析和额外信息注入的功能了...在llvm库流程后, 越来越多的人开始尝试在AST这一层对源代码信息进行提取, 这样相关的问题就回归到了c++本身来解决了, 这肯定比前面说的基于字符串的机制要稳定可控非常多, 相关的问题也更容易定位排查...如何选择 libclang 的使用语言, 是C++, Python, C#, 还是其他? 3. 如何支持好C++中大量使用的各种模板类型? 4....所以曾经在 G6 的时候, 我们是通过 C# 来访问 libclang 的(使用 ClangSharp ), 当时我们就尝试自己在 C# 层中完整的保存了一份来自 libclang 的数据层, 当然,...meta attribute 个别参数使用宏的情况. 因为我们原有的实现是基于 token 解析来实现的, 编译期的宏显然不能很好的在这种情况下被正确处理.