title: Why std::any & operator= for ValueType is not conditionally noexcept?
body: <p>The question is quite simple.</p>
  
  <p>This is the declaration of templated operator= for <code>std::any</code>:</p>
  
  <pre><code>template&lt;typename ValueType&gt;
  any&amp; operator=( ValueType&amp;&amp; rhs );
  </code></pre>
  
  <p>I would expect it to be:</p>
  
  <pre><code>template&lt;typename ValueType&gt;
  any&amp; operator=( ValueType&amp;&amp; rhs ) noexcept(noexcept(std::declval&lt;std::any&gt;() = std::forward&lt;ValueType&gt;(std::declval&lt;ValueType&gt;()));
  </code></pre>
  
  <p>Namely, if you can copy-assign ValueType to any in a noexcept fashion, then you should be able to have noexcept. </p>
  
  <p>Maybe I am missing something.</p>