title: C++ throw() (_NOEXCEPT) after function declaration
body: <p>I have seen in the Visual C++ include file <code>&lt;vector&gt;</code> using <code>throw()</code> after a function:</p>
  
  <pre><code>size_type capacity() const _NOEXCEPT
      {   // return current length of allocated storage
      return (this-&gt;_Myend - this-&gt;_Myfirst);
      }
  </code></pre>
  
  <p>With the <code>_NOEXCEPT</code> a macro for <code>throw()</code>, so the above looks like:</p>
  
  <pre><code>size_type capacity() const throw()
      {   // return current length of allocated storage
      return (this-&gt;_Myend - this-&gt;_Myfirst);
      }
  </code></pre>
  
  <p>But what does the throw do? I have seen in <a href="https://stackoverflow.com/questions/1055387/throw-keyword-in-functions-signature-c">this</a> question why it is a bad practise, but why has it been put there when nothing is thrown or caught?</p>