Я отчаянно пытаюсь открыть класс класса std::vector<bool>
для класса Python.
Вот мой класс С++:
class Test
{
public:
std::vector<bool> test_fail;
std::vector<double> test_ok;
};
Пока работает доступ и преобразование test_ok
типа double
(или int, float,..), это не для bool
!
Вот мой класс 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
Ошибка, которую я получаю:
Error compiling Cython file:
------------------------------------------------------------
...
cdef extern from *:
ctypedef bool X 'bool'
^
------------------------------------------------------------
vector.from_py:37:13: 'bool' is not a type identifier
Я использую python 2.7.6 и Cython 0.20.2 (также пытался 0.20.1).
Я также пробовал со свойствами, но он тоже не работает.
Добавление: У меня есть from libcpp cimport bool
в верхней части моего файла pyx, а также импорт вектора.
Что случилось? Я считаю, что это может быть ошибкой. Кто-нибудь знает, как обойти это? Спасибо.