title: Range for loop with multiple containers
body: <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>