title: What is the benefit to limiting throws allowed by a C++ function?
body: <p>What is the benefit of declaring the possible exception-throws from a C++ function? In other words, what does adding the keyword <code>throw()</code> actually do?</p>
  
  <p>I've read that a function declaration such as <code>void do_something() throw();</code> should guarantee that no exceptions originate from the <code>do_something()</code> function; however, this doesn't seem to hold true of functions called within <code>do_something()</code>, thus making it a weak guarantee.</p>
  
  <p>Please outline the usefulness (and best-use cases) of this language feature.</p>