...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::icl::add_iterator — Performes an addition using a container's memberfunction add, when operator= is called.
// In header: <boost/icl/iterator.hpp> template<typename ContainerT> class add_iterator { public: // types typedef ContainerT container_type; // The container's type. typedef std::output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; // construct/copy/destruct add_iterator(ContainerT &, typename ContainerT::iterator); add_iterator & operator=(typename ContainerT::const_reference); // public member functions add_iterator & operator *(); add_iterator & operator++(); add_iterator & operator++(int); };
add_iterator
public
construct/copy/destructadd_iterator(ContainerT & cont, typename ContainerT::iterator iter);
An add_iterator
is constructed with a container and a position that has to be maintained.
add_iterator & operator=(typename ContainerT::const_reference value);
This assignment operator adds the value
before the current position. It maintains it's position by incrementing after addition.
add_iterator
public member functionsadd_iterator & operator *();
add_iterator & operator++();
add_iterator & operator++(int);