Problema no cython: 'bool' não é um identificador de tipo
Estou tentando desesperadamente expor umstd::vector<bool>
membro da classe para uma classe Python.
Aqui está minha classe C ++:
class Test
{
public:
std::vector<bool> test_fail;
std::vector<double> test_ok;
};
Embora o acesso e a conversão detest_ok
do tipodouble
(ou int, float, ..) funciona, não funciona parabool
!
Aqui está a minha classe Cython:
cdef class pyTest:
cdef Test* thisptr
cdef public vector[bool] test_fail
cdef public vector[double] test_ok
cdef __cinit__(self):
self.thisptr = new Test()
self.test_fail = self.thisptr.test_fail # compiles and works if commented
self.test_ok = self.thisptr.test_ok
cdef __dealloc__(self):
del self.thisptr
O erro que recebo é:
Error compiling Cython file:
------------------------------------------------------------
...
cdef extern from *:
ctypedef bool X 'bool'
^
------------------------------------------------------------
vector.from_py:37:13: 'bool' is not a type identifier
Estou usando python 2.7.6 e Cython 0.20.2 (também tentei 0.20.1).
Eu também tentei com propriedades, mas também não funciona.
Termo aditivo: Eu tenho ofrom libcpp cimport bool
na parte superior do meu arquivo pyx, bem como na importação de vetores.
O que há de errado ?? Eu acredito que isso pode ser um bug. Alguém sabe como contornar isso? Obrigado.