from libcpp.memory cimport shared_ptr from range cimport cpp_RangeBase 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+ cdef extern from "array/array.h" namespace "CNORXZ": cdef cppclass cpp_MArray "CNORXZ::MArray" [T] (cpp_CArrayBase[T]): cpp_MArray() except+ cpp_MArray(const cpp_MArray[T]&) except+ cpp_MArray(const shared_ptr[cpp_RangeBase]&) except+