私は既存のライブラリのPython拡張を書いています。関数の中にはプリミティブへのポインタを受け付けるものもあるので、argは出力として動作することができます。
これはあまりpythonicではないので、私はSWIGのドキュメントで説明されているようにtypemapsを使用したいと思っています。ここ関数がタプルを返すようにします。
ここに私のSWIGインターフェイスファイルのスニペットがあります(この質問に関連する部分のみが示されています)
%include "typemaps.i" //For pointers to primitive types
%apply double *OUTPUT { double *a1, double *a2, double *a3 };
%apply double *OUTPUT { double *b1, double *b2, double *b3 };
%apply double *OUTPUT { double *c1, double *c2 };
class FooBar
{
public:
FooBar();
~FooBar();
int do(char* s, double *a1, double *a2, double *a3);
double something(int i, double *b1, double *b2, double *b3);
void great(double *c1, double *c2);
};
上記のやり方で複数のOUTPUT(マクロ?)を使用できるかどうかを明確にすることはSWIGの文書には現れていません –
これは安全ですか?
ベストアンサー
申し訳ありませんが、適切な答えはありません