小编Jea*_* F.的帖子

将 C++11 数组与 Cython 接口

我习惯于构建 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)

c++ arrays templates cython c++11

4
推荐指数
1
解决办法
676
查看次数

标签 统计

arrays ×1

c++ ×1

c++11 ×1

cython ×1

templates ×1