ラップした C++ コードから返されたポインターを処理する単純な SWIG ヘルパー関数を作成しました。
//in module foo:
%inline %{
double getPtrVal(double *ptr, int i) {
return (double) ptr[i];
}
%}
次のようなことを試すまで、これはうまくいきました:
for i in range(n):
for j in range(n):
val = foo.getPtrVal(ptrs, i)
その時点で、Python は TypeError を返しn
、整数ではないことを訴えました。
for i in range(n):
TypeError: an integer is required
n
実際、これは整数 (type(n)
一貫して を返します) であることを保証します<type 'int'>
。したがって、問題は何らかの形で SWIG 機能にあると思います。奇妙なことに、何回も問題なくfoo.getPtrVal(ptrs, i)
呼び出され、内部ループを初めてn
終了した直後にエラーがスローされます。j
何か案は?部分を明確にする場合は、さらにコード セグメントを投稿できます。ありがとう!