From: thomas weidner (3.14159_at_[hidden])
Date: 2008-04-14 19:40:19


Hi,
defining zip_iterator::value_type in the boost.iterator library to be
the same as the reference type breaks some mutating algorithms on
zip_iterators. for example sort (c++0x inside):

template<class... Arrays>
void array_multisort(Arrays& ... arrays)
{
  using namespace boost;
  std::sort(make_zip_iterator(make_tuple(arrays.begin()...)),
            make_zip_iterator(make_tuple(arrays.end()...)));
}

won't work as expected. Patching zip_iterator to provide a more natural
value_type makes the above code work as intended. The patch is attached
to this message.

mfg thomas