cdef extern from "Foo.h":
cdef cppclass Bar:
pass
cdef class PyClass:
cdef Bar *bar
def __cinit__(self, Bar *b)
bar = b
Esto siempre me va a dar algo como:
Cannot convert Python object argument to type 'Bar *'
Paso C++ puntero como argumento en la función Cython
¿Hay una manera de lograr esto, o tengo que extraer de todo, desde un objeto Bar
, crear un equivalente de Python, pasarlo, y luego reconstruirlo en PyClass
?
En versiones recientes de Cython (a partir de al menos 0,22), el decorador @staticmethod se puede aplicar sobre las funciones CDEF, así que ahora se puede hacer que el creador mundial funcionar en una clase estática uno para una organización más ordenada. – Dologan
'Bar' clase C++ no es un tipo numérico básico y no hay una conversión predeterminada. – jfs
@ J.F.Sebastian ¿Podría explicar a qué se refiere? Bar no tiene que ser un tipo numérico básico para almacenar un puntero al mismo. – Amoss