用嵌套类型包装C ++类

时间:2019-02-26 16:09:04

标签: cython

official documentation显示了一个示例,其中Rectangle.h仅包含原始类型。

如果要包装此类,

  • Rectangle.cpp本身使用了Blabla.h,它定义了BlaBla getBla(int x, BlaBla* ptr)
  • 这将是Rectangle.h中的公共方法。

如果我使用Cython进行编译,则会收到Unknown type的{​​{1}}错误:

问:如何告诉Cython在哪里找到Blabla?我还需要为BlaBla编写自定义包装吗?

一个例子:

BlaBla

带有#ifndef RECTANGLE_H #define RECTANGLE_H #include "Blabla.h" // This is the addition from the official example namespace shapes { class Rectangle { public: int x0, y0, x1, y1; Rectangle(); Rectangle(int x0, int y0, int x1, int y1); ~Rectangle(); int getArea(); void getSize(int* width, int* height); void move(int dx, int dy); // New method: BlaBla getBla(int x, BlaBla* ptr); }; } #endif

.pxd

Cython将抱怨cdef extern from "Rectangle.h" namespace "shapes": cdef cppclass Rectangle: Rectangle() except + Rectangle(int, int, int, int) except + int x0, y0, x1, y1 int getArea() void getSize(int* width, int* height) void move(int, int) // New: BlaBla getBla(int x, BlaBla* ptr); 是无法识别的类型

0 个答案:

没有答案