c++ - 在 Cython 中包装 C++ 模板函数/方法

标签 c++ templates methods cython word-wrap

我正在尝试用 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/

相关文章:

java - 为什么我的类不能识别我的方法?

c++ - 如何确定 exe 文件是 .Net exe 还是常规 exe?

c++ - qt5.7中的信号与槽 - QWebEnginePage

c++ - 在 C++ 中构建和使用 DLL 时遇到问题

c++ - 如何在 winapi 标准对话框中处理键盘事件?

c++ - std::is_base_of 用于模板类

c++ - 根据参数个数调用模板中的函数

c++ - std::get 从模板参数

objective-c - Obj-C 内省(introspection) : How can a method reference its own selector?

ios - 从继承类 -ios 实现方法时遇到问题