2

我正在尝试使用 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++ 模板构造函数,该构造函数的参数是一个布尔标量并且工作正常。

有什么帮助吗?

4

0 回答 0