gpt4 book ai didi

c++ - 如何在 cython 的 cpp 类中声明枚举

转载 作者:太空狗 更新时间:2023-10-29 20:54:39 30 4
gpt4 key购买 nike

我正在尝试使用 cython 包装一个 c++ 库。 c++ 头文件说 MyFile.h 声明了这样一个类:

class MyClass {

public:
enum MyEnum{
TYPE0 = 0,
TYPE1 = 1,
TYPE2 = 2,
};

MyClass(MyEnum val=TYPE0){
// ...
}
// ...
}

pxd 文件有这个:

cdef extern from "<MyFile.h>":

cdef cppclass MyClass:

cdef enum MyEnum:
TYPE0 = 0
TYPE1 = 1
TYPE2 = 2

MyClass(MyEnum val=TYPE0) except +

但是cython不编译它。我该怎么做呢?

最佳答案

尝试使用命名空间:

cdef extern from "MyFile.h" namespace "MyClass":
cdef enum MyEnum:
TYPE0 = 0
TYPE1 = 1
TYPE2 = 2

或者也许这也行得通:

cdef extern from "MyFile.h":
cdef enum MyEnum "MyClass::MyEnum":
TYPE0 = 0
...

关于c++ - 如何在 cython 的 cpp 类中声明枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38413774/

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