#ifndef Already_Included_DynamicArray #define Already_Included_DynamicArray namespace omega { template class DynamicArray2; template class DynamicArray3; template class DynamicArray4; template class DynamicArray { public: DynamicArray(DynamicArray &D); ~DynamicArray(); protected: DynamicArray(); bool partial; int *bounds; T *elements; void do_constr(); void do_destruct(); }; template class DynamicArray1 : public DynamicArray { public: DynamicArray1(const char *s0 = 0); DynamicArray1(int d0); void resize(int d0); T& operator[](int d); friend class DynamicArray2; private: void do_construct(int d0); }; template class DynamicArray2 : public DynamicArray { public: DynamicArray2(const char *s0 = 0, const char *s1 = 0); DynamicArray2(int d0, int d1); void resize(int d0, int d1); DynamicArray1 operator[](int d); friend class DynamicArray3; private: void do_construct(int d0, int d1); }; template class DynamicArray3 : public DynamicArray { public: DynamicArray3(const char *s0 = 0, const char *s1 = 0, const char *s2 = 0); DynamicArray3(int d0, int d1, int d2); void resize(int d0, int d1, int d2); DynamicArray2 operator[](int d); friend class DynamicArray4; private: void do_construct(int d0, int d1, int d2); }; template class DynamicArray4 : public DynamicArray { public: DynamicArray4(const char *s0 = 0, const char *s1 = 0, const char *s2 = 0, const char *s3 = 0); DynamicArray4(int d0, int d1, int d2, int d3); void resize(int d0, int d1, int d2, int d3); DynamicArray3 operator[](int d); private: void do_construct(int d0, int d1, int d2, int d3); }; } // namespace #if ! defined DONT_INCLUDE_TEMPLATE_CODE #include #endif #define instantiate_DynamicArray1(T) template class DynamicArray1; \ template class DynamicArray; #define instantiate_DynamicArray2(T) template class DynamicArray2; \ template class DynamicArray; \ instantiate_DynamicArray1(T); #define instantiate_DynamicArray3(T) template class DynamicArray3; \ template class DynamicArray; \ instantiate_DynamicArray2(T); #define instantiate_DynamicArray4(T) template class DynamicArray4; \ template class DynamicArray; \ instantiate_DynamicArray3(T); #endif