Cythonのconst_iterator

CythonのC++対応についてはだいぶ怪しいところがある. また, const対応についても同じくである.

constは関数引数内では利用できるため, std::vector const&を引数とする関数を作成したときに, const_iteratorでループを書く必要があった. ここで通常のC++の通り, cdef vector[hoge].const_iterator it = vec.begin()とするとエラーで落ちる. const_iteratorをとってきたいときは, const_beginを利用する必要があるようだ. end()もまあ同様.

https://github.com/cython/cython/blob/master/Cython/Includes/libcpp/vector.pxd#L60