【发布时间】:2017-03-22 19:10:31
【问题描述】:
我正在使用 Cython 包装一些 C++ 代码,并且在嵌套在两个命名空间中的匿名枚举存在一些问题。
来自some_header.hpp的示例定义:
namespace A {
namespace B {
enum {
X = 0,
Y = 1,
Z = 2
};
}
}
上述头文件的我的.pxd文件:
cdef extern from 'some_header.hpp' namespace 'A::B':
cdef enum:
CX 'A::B::X' \
CY 'A::B::Y' > Can this be simplified somehow?
CZ 'A::B::Z' /
我的.pyx 包装模块:
class B(IntEnum):
X = CX \
Y = CY > CX, CY and CZ are global in my .pyx module
Z = CZ /
我可以在我的.pyx 文件中使用CX、CY 和CZ,如您在上面看到的,但如果我可以执行CB.X、CB.Y 和CB.Z 之类的操作,那就太好了, IE。 CX/CY/CZ 在我的模块中不会是全局的。
.pxd 中的扩展命名空间'A::B::X' 也可以简化或删除吗?
【问题讨论】: