Jeff Flinn - wwnet wrote:
pdimov> pdimov> A possible cause of this problem is that vector iterators are
plain pointers
pdimov> in MSVC 6, and iterator_traits doesn't handle pointers on this
compiler (no
pdimov> partial specialization.)
That sounds right, in which case, the workaround is to avoid using the template parameter defaults of iterator_adaptor. This can be done by replacing the use of projection_iterator_generator and make_permutation_iterator() with a direct use of iterator_adaptor and permutation_iterator_policies and explicitly fill in all the parameters of iterator_adaptor.
Thanks, I'll look into directly using iterator adaptor. You might note the issue with MSVC vector in the documentation for permutation_iterator. Good idea,
Jeremy shall I add a 'portability' note in the iterator_adaptor documentation ? (otherwise, I will at least do it in the permutation_iterator doc)