I want to declare something like that:
cdef vector[Node*] list2node(list my_list):
But Cython gives me this error:
cdef vector[Node*] list2node(list my_list):
^
------------------------------------------------------------
mod.pyx:77:20: Expected an identifier or literal
You shouldn't need the *
-- vector[Node]
should generate code for a vector of Node pointers. Using 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
Generates the C++ code:
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);
Taking the answer from this SO answer, what you should do is
ctypedef Node* Node_ptr
and then use Node_ptr
across your program.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With