All, I've been using the boost range library for a few months now, and it's simplified my life considerably. I occasionally want to use something akin to MPL's zip_view and unpack_args with my ranges. For example: <code> const std::vector<int> vec1 = list_of(1)(2)(3)(4)(5)(6); std::vector<int> vec2 = list_of(10)(20)(30)(40)(50)(60); std::vector<int> vec3 = list_of(100)(200)(300)(400)(500)(600); boost::for_each(zip(vec1, vec2, vec3) | strided(2), unpack( std::cout << px::val('(') << arg1 <<", "<< arg2 <<", "<< arg3 << ")\n")); boost::transform(vec1, boost::begin(zip(vec3, vec2)), px::construct<boost::tuple<int,int> >(arg1 + 1, arg1 + 2)); boost::for_each(zip(vec2, vec3), unpack(std::cout << px::val('(') << arg1 << ", " << arg2 << ")\n")); </code> I note that the new algorithms include a two-argument for_each, but it would be nice to have something more extensible. I may have missed it in the documentation or on the list, but I haven't found anything like that. Does anyone know of such an adaptor? Since it's the weekend, I actually implemented code which allows the previous snippet to compile -- if no such adaptor exists I'd be happy to make it available/submit it to boost assuming there's interest. Thanks, Nate