from libcpp.memory cimport shared_ptr from range cimport cpp_RangeBase from index cimport cpp_YIndex cdef extern from "array/array.h" namespace "CNORXZ": cdef cppclass cpp_AIndex "CNORXZ::AIndex" [T] (cpp_YIndex): cpp_AIndex() except+ cpp_AIndex(const cpp_AIndex&) except+ cpp_AIndex(const T*, const shared_ptr[cpp_RangeBase]&, size_t lexpos) except+ cpp_AIndex(const T*, const cpp_YIndex&) except+ cpp_AIndex A_plus "operator+" (int n) except+ cpp_AIndex A_minus "operator-" (int n) except+ const T& A_get "operator*" () except+ cdef extern from "array/array.h" namespace "CNORXZ": cdef cppclass cpp_BIndex "CNORXZ::BIndex" [T] (cpp_AIndex[T]): cpp_BIndex() except+ cpp_BIndex(const cpp_AIndex[T]&) except+ cpp_BIndex(const T*, const shared_ptr[cpp_RangeBase]&, size_t lexpos) except+ cpp_BIndex(const T*, const cpp_AIndex[T]&) except+ cpp_BIndex B_plus "operator+" (int n) except+ cpp_BIndex B_minus "operator-" (int n) except+ T& B_get "operator*" () except+ cdef extern from "array/array.h" namespace "CNORXZ": cdef cppclass cpp_CArrayBase "CNORXZ::CArrayBase" [T]: cpp_CArrayBase() except+ cpp_CArrayBase(const cpp_CArrayBase[T]&) except+ size_t size() except+ shared_ptr[cpp_RangeBase] range() except+ cpp_AIndex[T] begin() except+ cpp_AIndex[T] end() except+ cdef extern from "array/array.h" namespace "CNORXZ": cdef cppclass cpp_ArrayBase "CNORXZ::ArrayBase" [T] (cpp_CArrayBase[T]): cpp_ArrayBase() except+ cpp_ArrayBase(const cpp_ArrayBase[T]&) except+ cpp_BIndex[T] begin() except+ cpp_BIndex[T] end() except+ cdef extern from "array/array.h" namespace "CNORXZ": cdef cppclass cpp_MArray "CNORXZ::MArray" [T] (cpp_ArrayBase[T]): cpp_MArray() except+ cpp_MArray(const cpp_MArray[T]&) except+ cpp_MArray(const shared_ptr[cpp_RangeBase]&) except+