Why (void) between two comma separated statements in a for loop : <p>The following code comes from an implementation example of <code>std::lexicographical_compare</code> on <a href="http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare" rel="noreferrer">cppreference.com</a>:</p>

<pre><code>template&lt;class InputIt1, class InputIt2&gt;
bool lexicographical_compare(InputIt1 first1, InputIt1 last1,
                             InputIt2 first2, InputIt2 last2)
{
    for ( ; (first1 != last1) &amp;&amp; (first2 != last2); ++first1, (void) ++first2 ) {
        if (*first1 &lt; *first2) return true;
        if (*first2 &lt; *first1) return false;
    }
    return (first1 == last1) &amp;&amp; (first2 != last2);
}
</code></pre>

<p>Why is there a <code>(void)</code> in the loop, and what would be the consequence of not putting it there?</p>
