Range for loop with multiple containers
<p>Suppose I have 2 (or more) containers I want to iterate through simultaneously - for example, to compute the dot product of two vectors:</p>

<pre><code>std::vector&lt;double&gt; vector1;
std::vector&lt;double&gt; vector2;    // identical size to vector1
</code></pre>

<p>What is the preferred C++11 way to specify a range-for loop over both (or all) containers simultaneously? Does it involve choosing one container/iterator to write short-hand (i.e. <code>for ( auto i : c )</code>) in a range-for loop, while all other containers/iterators have to be handled long-hand? Is there any reason the syntax in future could not be extended to support short-hand for both/all containers as shown below... which seems really readable:</p>

<pre><code>double dotProduct( 0.0 );
for ( auto const &amp; value1 : vector1, auto const &amp; value2 : vector2 )  // illegal!
{
    dotProduct += value1*value2;
}
</code></pre>