I'm looking for a transforming iterator. I've looked at the boost transform_iterator but it doesn't quite do what I want. Well, in fact it does a little too much, it passes the dereferenced base iterator to the transform function - I would like it to pass the base iterator itself. The reason being is that the transform function is to return an object containing that base iterator (the object acts much along the lines of a boost graph edge/vertex descriptor). At the moment I've cut and pasted transform_iterator.hpp, renamed it transmute_iterator.hpp and edited it to remove one char (the dereferencing *) just so as I can try things out. Oh, I am slow! I was going to ask if such an iterator could be added to boost lib but have just realised that it is trivial for a transmute_iterator to model a transform_iterator. Hmm, so my question now is - is there some reason why the base iterator is dereferenced before being passed to the function? Wouldn't it be better to let the function decide that? thanks, Louis. BTW, you guys write some really great stuff, it's very much appreciated. And C++ Template Metaprogramming is mind blowing (especially chapters 10++). -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.322 / Virus Database: 266.11.12 - Release Date: 17/05/2005