#ifndef __cxz_marray_h__ #define __cxz_marray_h__ #include "array_base.h" namespace CNORXZ { template <typename T> class MArray : public ArrayBase<T> { public: typedef CArrayBase<T> AB; typedef typename AB::const_iterator const_iterator; using CArrayBase<T>::operator[]; using ArrayBase<T>::operator[]; DEFAULT_MEMBERS(MArray); MArray(const RangePtr& range); MArray(const RangePtr& range, const Vector<T>& vec); MArray(const RangePtr& range, Vector<T>&& vec); virtual const T* data() const override; virtual T* data() override; virtual const_iterator cbegin() const override; virtual const_iterator cend() const override; virtual bool isView() const override; private: Vector<T> mCont; }; } #endif