2011/1/28 Nathan Crookston <nathan.crookston@gmail.com>
[...]  
 I decided to create a new range adaptor based the zip_iterator which 
 reduces the verbosity of the loop declaration.  Such an adaptor is 
 common for this problem [2][3].  I was surprised that I couldn't find 
this already in the range library.  (Feel free to disabuse me if
necessary.)

I'm with you. IMHO, that's something missed in Boost.Range.

boost::for_each(zip(images, offsets) | strided(2), unzip(AddToMosaic(mosaic)));
[...]
The unpack() function would be useful for the zip_iterator as well.

Is Fusion's make_fused() the equivalent?