我正在尝试用 Cython 包装一些 C++ 代码。我有一个使用模板方法的类,但它本身不是模板。
class SomeClass {
template <class T> SomeClass(T& spam);
};
由于类不是模板而只是构造函数,所以我不能像这样在 Cython 中将类声明为模板。
# wrong!
cdef extern from "SomeClass.h":
cppclass SomeClass [T]:
SomeClass(T& spam)
如何包装模板方法?
最佳答案
对于非构造函数模板方法,使用以下非模板类:
class SomeClass {
template <class T> void other(T& spam);
};
我能够让它工作:
cdef extern from "someclass.h":
cppclass SomeClass:
void other[T](T &spam)
如果您特别需要构造函数模板方法,那可能对您没有帮助,但看起来 Cython 对模板方法的支持自最初提出此问题以来至少略有改进。
关于c++ - 在 Cython 中包装 C++ 模板函数/方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8715657/