我习惯于构建 C++ 程序并在 Cython 中获取它,但在这里我试图获取 C++ 11array并且它绝对不起作用。
这是我的 .pxd :
cdef extern from "<array>" namespace "std" nogil :
cdef cppclass array[T, size_t]:
ctypedef T value_type
cppclass iterator:
T& operator*()
iterator operator++()
iterator operator--()
iterator operator+(size_t)
iterator operator-(size_t)
bint operator==(iterator)
bint operator!=(iterator)
bint operator<(iterator)
bint operator>(iterator)
bint operator<=(iterator)
bint operator>=(iterator)
T& operator[](size_t)
array() except +
array(array&) except +
Run Code Online (Sandbox Code Playgroud)
这个文件的大部分内容是从“vector.pxd”改编的,但我删除了分配器,因为 c++11array不需要它。我用作size_t第二个模板参数,但我不确定。
问题是,当我这样做时:
from array11 cimport array
cdef array[int, 5] test
Run Code Online (Sandbox Code Playgroud)
我得到,编译时:
模板参数中的未知类型
如果我做 :
from array11 …Run Code Online (Sandbox Code Playgroud)