2010-12-08 3 views
0

SWIGを使ってC++ライブラリAPIをラップしましたが、うまくいきましたが、 "bool &"パラメータで困惑しています。SWIGとPythonを使用して参照によってboolを渡す

オリジナルのAPIは、次のようになります。

ボイドのfoo(ブール値&バー)。私は、Pythonから呼び出すとき

、_wrap.cxxは言い換えれば

int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_bool, 0); 
    _v = SWIG_CheckState(res); 
    if (_v) { 

でラップ工程から脱落、SWIGは私がブールポインタに渡しているものを変換することはできません。

私はそうのように、Pythonのからそれを呼び出すようにしようとしている:

obj = LibObject() 
    x = 0 
    obj.foo(x) 

は、このためのシンプルなタイプマップの修正はありますか?

答えて

1

これは動作するはずです:

%include <typemaps.i> 
%apply bool & INOUT { bool & bar }; 

SWIGはbool & barパラメータを見ているときはいつでも、それは/出力パラメータとして扱う必要があります。出力パラメータとしてのみ必要な場合は、OUTPUTを使用してください。

関連する問題