title: Using noexcept as a lambda modifier or parameter constraint
body: <p>Can the <code>noexcept</code> modifier be applied to a lambda expression? If so, how?</p>
  
  <p>Can <code>noexcept</code> be made a constraint on a function argument? For example, something like in the following code, where the meaning is that the callback function must be <code>noexcept</code>?</p>
  
  <pre><code>//probably not valid code - I'm just trying to express the idea
  void f_async(std::function&lt;void (int) noexcept&gt; callback) noexcept
  {
      ...
  }
  </code></pre>
  
  <p>This can <em>almost</em> be accomplished with the following code, but I'm wondering if there is a way to use something like the above alternative.</p>
  
  <pre><code>void f_async(std::function&lt;void (int)&gt; callback)
      noexcept(callback(std::declval&lt;int&gt;()))
  {
      ...
  }
  </code></pre>
  
  <p>The problem here of course is that <code>f_async</code> can be <code>noexcept(false)</code> if the callback is <code>noexcept(false)</code> - I want to make a stronger statement that <code>f_async</code> is <em>always</em> <code>noexcept</code>, meaning it's only callable if you use a <code>noexcept</code> callback.</p>