// -*- C++ -*- #ifndef __multi_array_h__ #define __multi_array_h__ #include #include #include "base_def.h" #include "multi_array_operation.h" #include "name.h" namespace MultiArrayTools { template class MultiArray { public: DEFAULT_MEMBERS(MultiArray); MultiArray(const Range& range); MultiArray(const Range& range, const std::vector& vec); MultiArray(const Range& range, std::vector&& vec); template MultiArrayOperation& operator()(const NameTypes&... str) const; T& operator()(const typename Range::indexType& i); const T& operator()(const typename Range::indexType& i) const; private: bool mInit = false; std::shared_ptr mRange; std::vector mCont; }; } #include "multi_array.cc" #endif