// -*- C++ -*- #ifndef __multi_array_h__ #define __multi_array_h__ #include <cstdlib> #include "base_def.h" #include "multi_array_operation.h" namespace MultiArrayTools { template <typename T, class Range> class MultiArray { public: DEFAULT_MEMBERS(MultiArray); MultiArray(const Range& range); // !!!! template <class... NameTypes> MultiArrayOperation<T,Range>& 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::vector<T> mCont; std::shared_ptr<Range> mRange; }; } #include "multi_array.cc" #endif