我正在尝试使用 SWIG 将 numpy bool 数组传递给 C++ 类模板,其构造函数具有标准的 %apply 语句。
在蟒蛇中:
x = numpy.array( [True,False,True], dtype='bool' )
在 *.i 文件中:
%apply(bool* INPLACE_ARRAY1, int DIM1) {(bool* atValueIn, int iDim1In)}
在 C++ 类模板(构造函数)中:
Data<bool,1>( bool* x, int size ); // Should be resolved by compiler to this
我收到错误消息,告诉我它找不到正确的构造函数。错误消息列出的可能构造函数列表包括我上面显示的那个。我尝试在 python 中没有成功dtype='bool8'
。dtype='bool_'
我还尝试在 C++ 级别使用 unsigned char ,但没有成功。
请注意,此代码适用于其他数据类型,如 int32 (int)、float32 (float) 等。
请注意,我还有另一种情况,我将一个非 numpy 布尔值传递给另一个 C++ 模板构造函数,该构造函数的参数是一个布尔标量并且工作正常。
有什么帮助吗?