Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Class template zip_iterator

boost::compute::zip_iterator — A zip iterator adaptor.


// In header: <boost/compute/iterator/zip_iterator.hpp>

template<typename IteratorTuple> 
class zip_iterator {
  // types
  typedef unspecified                 super_type;     
  typedef super_type::value_type      value_type;     
  typedef super_type::reference       reference;      
  typedef super_type::difference_type difference_type;
  typedef IteratorTuple               iterator_tuple; 

  // construct/copy/destruct
  zip_iterator(const zip_iterator< IteratorTuple > &);
  zip_iterator< IteratorTuple > & 
  operator=(const zip_iterator< IteratorTuple > &);

  // public member functions
  const IteratorTuple & get_iterator_tuple() const;
  template<typename IndexExpression> 
    unspecified operator[](const IndexExpression &) const;

  // private member functions
  reference dereference() const;
  bool equal(const zip_iterator< IteratorTuple > &) const;
  void increment();
  void decrement();
  void advance(difference_type);
  difference_type distance_to(const zip_iterator< IteratorTuple > &) const;


The zip_iterator class combines values from multiple input iterators. When dereferenced it returns a tuple containing each value at the current position in each input range.

See Also:


zip_iterator public construct/copy/destruct

  1. zip_iterator(IteratorTuple iterators);
  2. zip_iterator(const zip_iterator< IteratorTuple > & other);
  3. zip_iterator< IteratorTuple > & 
    operator=(const zip_iterator< IteratorTuple > & other);
  4. ~zip_iterator();

zip_iterator public member functions

  1. const IteratorTuple & get_iterator_tuple() const;
  2. template<typename IndexExpression> 
      unspecified operator[](const IndexExpression & expr) const;

zip_iterator private member functions

  1. reference dereference() const;
  2. bool equal(const zip_iterator< IteratorTuple > & other) const;
  3. void increment();
  4. void decrement();
  5. void advance(difference_type n);
  6. difference_type distance_to(const zip_iterator< IteratorTuple > & other) const;