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