簡體   English   中英

使用SWIG和Python通過引用傳遞布爾

[英]Passing bool by reference using SWIG and Python

我已經使用SWIG封裝了C ++庫API,該API效果很好,但是我對“ bool&”參數感到困惑。

原始API如下所示:

無效foo(bool&bar);

當我從Python調用它時,_wrap.cxx在以下位置退出包裝過程

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

換句話說,swig無法將我傳遞的內容轉換為bool指針。

我正在嘗試從Python調用它,如下所示:

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

是否有一個簡單的typemap修復程序?

這應該工作:

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

每當SWIG看到bool & bar參數時,都應將其視為輸入/輸出參數。 如果僅將其用作輸出參數,請使用OUTPUT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM