使用cython包装c ++ struct模板

Eld*_*ila 25 c++ templates cython

我试图访问该结构

template <int dim>
struct Data { 
  double X[dim];
  double Val[dim];
}; 
Run Code Online (Sandbox Code Playgroud)

在cython中.我猜测正确的语法应该是这样的:

cdef extern from "Lib.h" namespace "LIB":
    cdef struct Data[int dim]:
      double X[dim];
      double Val[dim];
Run Code Online (Sandbox Code Playgroud)

但是,我收到语法错误.什么是正确的语法(如果它甚至可能)?

Eld*_*rov 3

将 struct 关键字替换为 cppclass 关键字。这应该有帮助。

  cdef extern from "Lib.h" namespace "LIB":
      cdef cppclass Data[int dim]:
        double X[dim];
        double Val[dim];
Run Code Online (Sandbox Code Playgroud)

另请查看此线程:Cython 中的 C++ 结构继承