【发布时间】:2020-07-08 18:05:29
【问题描述】:
我正在开发一个包含以下声明的开源 C 文件
static PyTypeObject Bitarraytype;
后面是定义
static PyTypeObject Bitarraytype = {
/* A bunch of stuff */
};
我正在将此代码移植到 C++ (-std=C++2a),但是不再允许上述声明和定义,因为它声称 error: redefinition of 'Bitarraytype'
我不确定是什么原因造成的,因为上面的第一个块只是我理解的声明。为什么这在 C++ 中不起作用,我该如何解决?
【问题讨论】:
-
对于最后一个问题(绕过它),您是否有理由无法删除“声明”? (在我看来,这就像第一个尝试的解决方法。)
-
本质上很多中间代码依赖于类型的存在,而类型的定义依赖于中间代码。我不是代码的作者,并且希望尽可能少地更改以使合并请求变得容易。
标签: python c++ c python-c-api