How to do it...

To provide mutable and constant random access iterators for the dummy_array class shown in the previous section, add the following members to the class:

  • An iterator class template, which is parameterized with the type of elements and the size of the array. The class must have the following public typedefs that define standard synonyms:
        template <typename T, size_t const Size>        class dummy_array_iterator        {        public:          typedef dummy_array_iterator            self_type;          typedef T                               value_type;          typedef T&                              reference;          typedef T*                              pointer;          typedef std::random_access_iterator_tag iterator_category;          typedef ptrdiff_t                       difference_type;        };
  • Private members for the iterator class: a pointer to the array data and a current index into the array:
 private: ...

Get Modern C++: Efficient and Scalable Application Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.