Я пишу привязку Python для класса C ++, который принимает указатель файла -
PYBIND11_MODULE(pywrapper, m) {
...
py::class_<Dog, Animal>(m, "Dog")
.def(py::init<FILE * const>());
}
Я вызываю функцию c ++ следующим образом -
f = open("test.log","w")
c = Dog(f)
Я получаю сообщение об ошибке -
File "main.py", line 6, in test_init
client = Dog(f)
TypeError: __init__(): incompatible constructor arguments. The following argument types are supported:
1. pywrapper.Dog(arg0: _IO_FILE)
Invoked with: <_io.TextIOWrapper name='test.log' mode='w' encoding='UTF-8'>
Как мне написать обертку для конструктора здесь?