使用cython包装c++结构模板

Wrapping c++ struct template using cython

本文关键字:结构 c++ cython 包装 使用      更新时间:2023-10-16

我正在尝试访问结构

template <int dim>
struct Data { 
  double X[dim];
  double Val[dim];
}; 

在cython。我猜正确的语法应该是这样的:

cdef extern from "Lib.h" namespace "LIB":
    cdef struct Data[int dim]:
      double X[dim];
      double Val[dim];

然而,我得到了一个语法错误。正确的语法是什么(如果可能的话)?

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

  cdef extern from "Lib.h" namespace "LIB":
      cdef cppclass Data[int dim]:
        double X[dim];
        double Val[dim];

还可以看看这个线程:Cython 中的C++结构继承