相关疑难解决方法(0)

CPython API与C ++类齐名

我正在尝试使用C ++类中C / Python API中定义的结构。具体地讲,我试图限定结构的阵列,用于PyMethodDefPyMemberDef(文档这里):

对于PyMethodDef,我能够在类头中定义静态数组,并在实现文件中声明它。但是,对它做同样的事情PyMemberDef会给我以下错误:

error: elements of array 'PyMemberDef members_ []' have incomplete type
error: storage size of 'members_' isn't known.
Run Code Online (Sandbox Code Playgroud)

我想我可以理解为什么PyMethodDef有效,但是PyMemberDef无效。在Python源代码中,PyMethodDef其定义如下:

struct PyMethodDef {
    ...
    ...
};

typedef struct PyMethodDef PyMethodDef;
Run Code Online (Sandbox Code Playgroud)

PyMemberDef定义如下:

typedef struct PyMemberDef {
   ...
   ...
} PyMemberDef;
Run Code Online (Sandbox Code Playgroud)

通过定义代码中PyMemberDef的方式PyMethodDef并确认其编译没有错误,我确认了这是导致此问题的原因。但是,我不知道该如何纠正。我不想自己硬编码并重新定义它。希望这足够清楚。我可以根据要求提供更多细节。谢谢。

c++ python api

2
推荐指数
1
解决办法
739
查看次数

标签 统计

api ×1

c++ ×1

python ×1