我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。
关闭 7 年前。
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/