6

私はそのようなことを宣言したい:

cdef vector[Node*] list2node(list my_list):

しかし、Cython は私にこのエラーを与えます:

cdef vector[Node*] list2node(list my_list):
                ^
------------------------------------------------------------

mod.pyx:77:20: Expected an identifier or literal
4

2 に答える 2

7

*--vector[Node]は Node ポインターのベクトルのコードを生成する必要はありません。Cython 0.14.1 の使用:

cdef class Node: 
    pass
cdef vector[Node] list2node():
    pass
cdef vector[int] test_int():
    pass
cdef vector[int*] test_intp(): 
    pass

C++ コードを生成します。

static PyTypeObject *__pyx_ptype_3foo_Node = 0;
static std::vector<struct __pyx_obj_3foo_Node *> __pyx_f_3foo_list2node(void);
static std::vector<int> __pyx_f_3foo_test_int(void);
static std::vector<int *> __pyx_f_3foo_test_intp(void);
于 2011-03-22T21:14:50.520 に答える
3

この SO answerから答えを得て、あなたがすべきことは

ctypedef Node* Node_ptr

そしてNode_ptr、プログラム全体で使用します。

于 2015-09-15T20:07:17.393 に答える