libzypp 17.37.10

Boost.Iterator Library

See also
  http://www.boost.org/libs/iterator/doc/index.html

- counting_iterator: an iterator over a sequence of consecutive values. Implements a "lazy sequence"
- filter_iterator: an iterator over the subset of elements of some sequence which satisfy a given predicate
- function_output_iterator: an output iterator wrapping a unary function object; each time an element is written into the dereferenced iterator, it is passed as a parameter to the function object.
- indirect_iterator: an iterator over the objects pointed-to by the elements of some sequence.
- permutation_iterator: an iterator over the elements of some random-access sequence, rearranged according to some sequence of integer indices.
- reverse_iterator: an iterator which traverses the elements of some bidirectional sequence in reverse. Corrects many of the shortcomings of C++98's std::reverse_iterator.
- shared_container_iterator: an iterator over elements of a container whose lifetime is maintained by a shared_ptr stored in the iterator.
- transform_iterator: an iterator over elements which are the result of applying some functional transformation to the elements of an underlying sequence. This component also replaces the old projection_iterator_adaptor.
- zip_iterator: an iterator over tuples of the elements at corresponding positions of heterogeneous underlying iterators.

There are in fact more interesting iterator concepts available than the ones listed above. Have a look at them.

Some of the iterator types are already dragged into namespace zypp. Feel free to add what's missing.

Todo
  Separate them into individual zypp header files.