Передача bool по ссылке с помощью SWIG и Python

Я обернул API-интерфейс библиотеки C ++ с помощью SWIG, который работает хорошо, но меня озадачивает параметр «bool &».

Оригинальный API выглядит так:

void 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) 

Есть ли для этого исправление для файловой системы?

One Solution collect form web for “Передача bool по ссылке с помощью SWIG и Python”

Это должно работать:

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

Всякий раз, когда SWIG видит параметр bool & bar , он должен рассматривать его как параметр in / out. Если вам это нужно только как выходной параметр, используйте OUTPUT .

  • Swig, python и выходные строки
  • SWIG - Wring C строка строки в список python
  • Поддерживает ли CMake Python3?
  • Как создать экземпляр метода шаблона класса шаблона с помощью swig?
  • Техника использования std :: ifstream, std :: ofstream в python через SWIG?
  • Как получить срез python для работы с моим классом массивов c ++ с помощью SWIG
  • Python / SWIG: вывод массива
  • SWIG с аргументами python и C:
  • Как применять шаблоны типов SWIG OUTPUT для типов классов в Python?
  • Как применить карту типа SWIG для аргумента struct с двойной указателем
  • Как я могу обернуть модель без признаков для использования с чертами Python?
  • Python - лучший язык программирования в мире.