次の 2 つのメソッドを使用して C++ で記述された Publisher クラスがあります。
PublishField(char* name, double* address);
GetFieldReference(char* name, double*& address);
このクラスの Python バインディングは、SWIG を使用して生成されています。私の swig .i ファイルには次のものがあります。
%pointer_class(double*, ptrDouble);
これにより、Python 変数で定義されたフィールドを公開できます。
value = ptrDouble()
value.assign(10.0)
PublishField("value", value.cast())
ただし、GetFieldReference メソッドを使用しようとすると、TypeError が発生します。
GetFieldReference("value", newValue)
ptrDouble を返す double*& のタイプマップを作成する必要があると思いますが、それがどのようになるかはよくわかりません。