title: What does the 'void()' in 'auto f(params) -> decltype(..., void())' do?
body: <p>I found code <a href="https://stackoverflow.com/a/9531274/1594090">here</a> that looked something like this:</p>
  
  <pre><code>auto f(T&amp; t, size_t n) -&gt; decltype(t.reserve(n), void()) { .. }
  </code></pre>
  
  <p>In all the documentation I read I was told that <code>decltype</code> is signed as:</p>
  
  <blockquote>
    <p><code>decltype( entity )</code></p>
  </blockquote>
  
  <p>or</p>
  
  <blockquote>
    <p><code>decltype( expression )</code></p>
  </blockquote>
  
  <p>And there is no second argument anywhere. At least that's what's pointed to on <a href="http://en.cppreference.com/w/cpp/language/decltype" rel="nofollow noreferrer">cppreference</a>. Is this a second argument to <code>decltype</code>? And if so, what does it do?</p>