gpt4 book ai didi

python - 如何使用用于 clang 工具的 python 绑定(bind)来判断类/结构是可复制的

转载 作者:行者123 更新时间:2023-12-03 07:03:39 24 4
gpt4 key购买 nike

我们的项目使用 clang python api 为 C++ 类生成 python 绑定(bind)。
现在我们有一个限制,即只有当一个类型具有显式定义的复制构造函数时,才会公开拷贝。
我想将其更改为也为生成的复制构造函数声明一个拷贝 - 所以我需要以某种方式检测到这一点。
我关心的所有结构都是可简单复制的,所以如果我只能检测到可简单复制的结构也可以。
我怎么知道我所在的结构是可复制的还是可简单复制的?
我有 CursorKind.STRUCT_DECL作为我的出发点。

最佳答案

这就是我们最终的结果。
a)似乎直接从clang ast中您只能询问'is_pod'是否
cindex.py
不是我需要的,因为 pod也意味着没有默认构造函数符合这个 std::is_pod std::is_trivial .
b) 我们所做的是:

  • 将原始文件包含在我们生成的不同 tmp 文件中,并
    解析那个。
  • 在该文件中生成一个特别命名的 enum <ClassName>_Traitsstd::is_copy_constructible为感兴趣的一类。
  • 关于python - 如何使用用于 clang 工具的 python 绑定(bind)来判断类/结构是可复制的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64175475/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com