// cont/carray.hpp #include template class carray { private: T v[thesize]; // Массив фиксированного размера // для элементов типа T public: // Определения типов typedef T value_type; typedef T* iterator; typedef const T* const_iterator; typedef T& reference; typedef const T& const_reference; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; // Поддержка итераторов iterator begin() { return v; } const_iterator begin() const { return v; } iterator end() { return v+thesize; } const_iterator end() const { return v+thesize; } // Прямой доступ к элементам reference operator[](std::size_t i) { return v[i]; } const_reference operator[](std::size_t i) const { return v[i]; } // Фиксированный размер size_type size() const { return thesize; } size_type max_size() const { return thesize; } // Преобразование к обычному массиву T* as_array() { return v; } };