``counting_iterator`` adapts an incrementable type such as ``int``
or ``std::list<std::string>::iterator``, by adding an ``operator*``
that returns the current value of the object.