Я новичок в cython, и мне нужно обернуть библиотеку cpp, которая, среди прочего, определяет:
- класс А со своими функциями
- определение типа A* B
- класс C с функцией addA(), возвращающей B
типизированные указатели.h
typedef objectA * typeB
классы.ч
class objectA {
int id;
objectA(){}
int get_id() {return id;}
//...
}
class objectC {
objectC();
typeB add_newA(int id){...}
}
Мне удалось определить классы python для A и C, но я понятия не имею, как определить тип B и функцию addA(), так как при компиляции я получаю сообщение об ошибке, говорящее, что тип B не может быть преобразован в объект python:
Невозможно преобразовать 'typeB' в объект Python
Какие-либо предложения?
mywrapper.pyx
cdef extern from "classes.h":
cdef cppclass objectA:
objectA() except +
int get_id() const;
cdef cppclass objectC:
objectC() except +
typeB add_newA(int id) const;
cdef extern from "typedpointers.h":
ctypedef objectA* typeB;
cdef cppclass typeB:
typeB() except +