c++ - 是否有可以解析 C++ 的优秀 Python 库?

Google 没有发现任何似乎相关的内容。

我有一堆现有的、可工作的 C++ 代码,我想使用 python 来抓取它并找出类之间的关系等。

编辑:只是想指出:我认为我不需要或不想解析 C++ 的每一点;我只需要足够聪明的东西来处理类、函数和成员变量声明,并跳过函数定义。

最佳答案

这不是一个答案,只是为了演示正确解析 C++ 的实际难度。我最喜欢的演示:

template<bool> struct a_t;

template<> struct a_t<true> {
    template<int> struct b {};
};

template<> struct a_t<false> {
    enum { b };
};

typedef a_t<sizeof(void*)==sizeof(int)> a;

enum { c, d };
int main() {
    a::b<c>d; // declaration or expression?
}

这是完全有效的、符合标准的 C++,但注释行的确切含义取决于您的实现。如果 sizeof(void*)==sizeof(int) (通常在 32 位平台上),它是局部变量 d 的声明类型 a::b<c> .如果条件不成立,则为空操作表达式 ((a::b < c) > d) .为 a::b 添加构造函数实际上会让你通过副作用的存在/不存在来暴露差异。

https://stackoverflow.com/questions/1444961/

相关文章:

c++ - 什么时候需要 "typename"关键字?

>' should be ` > >' within ">c++ - 模板内的模板 : why "` >>' should be ` > >' within

c++ - C 样式字符串作为模板参数?

c++ - 如何在 GCC 搜索路径中包含头文件?

c++ - C++ 中的 vector ::size_type

c++ - C中有const吗?

c++ - 复制 std::vector:更喜欢赋值还是 std::copy?

c++ - 如何遍历打包的可变参数模板参数列表?

c++ - 每个类都应该有一个虚拟析构函数吗?

c++ - 使用 Qt 进行序列化