我有一个带有此签名的C ++对象,
Foo(const bool* const*, const int, const float=0.025);
我有相应的PYX文件
import numpy as np
cimport numpy as np
cdef extern from "foo.h":
cdef cppclass Foo:
Foo()
Foo(int**, const int, const float=0.025)
void mcq(int* &maxclique, int &sz)
cdef class MyFoo:
cdef Foo c_mxclik
def __cinit__(self, int[:] b, int k, float x):
self.c_mxclik = Foo(b,k,x)
哪个不起作用。我不明白如何通过Cython将Python的输入的const bool* const*
部分转换为C ++代码。
我被困住了。谢谢!
答案 0 :(得分:2)
首先,int
和bool
通常大小不同,因此将int
数组传递给期望数组{{1}的函数可能会很危险}第
我建议你改变你的Cython代码以匹配C ++签名。您可以使用
访问Cython中的C ++bool
bool
其次,您只需要使用C风格的from libcpp cimport bool
运算符获取地址。您需要分两步完成(即首先设置&
,然后获取该地址)。
bool*