title: Does it make sense to declare inline functions noexcept?
body: <p>From what I can tell, the SO community is divided on whether declaring a function <code>noexcept</code> enables meaningful compiler optimizations that would not otherwise be possible.  (I'm talking specifically about <em>compiler</em> optimizations, not library implementation optimizations based on <code>move_if_noexcept</code>.) For purposes of this question, let's assume that <code>noexcept</code> does make meaningful code-generation optimizations possible. With that assumption, does it make sense to declare <code>inline</code> functions <code>noexcept</code>? Assuming such functions are actually inlined, this would seem to require that compilers generate the equivalent of a <code>try</code> block around the code resulting from the <code>inline</code> function at the call site, because if an exception arises in that region, <code>terminate</code> must be called. Without <code>noexcept</code>, that <code>try</code> block would seem to be unnecessary.</p>
  
  <p>My original interest was in whether it made sense to declare Lambda functions <code>noexcept</code>, given that they are implicitly <code>inline</code>, but then I realized that the same issues arise for any <code>inline</code> function, not just Lambdas.</p>