title: Why does the non-pointer std::any_cast not return a reference?
body: <p>The <a href="https://en.cppreference.com/w/cpp/utility/any/any_cast" rel="nofollow noreferrer"><code>any_cast()</code></a> function - say, for a non-const reference operand - has the following signature:</p>
  <pre><code>template&lt;class T&gt;
  T any_cast(any&amp; operand);
  </code></pre>
  <p>Why does this function not return a <code>T&amp;</code> - where the documentation says the returned value is merely</p>
  <pre><code>static_cast&lt;T&gt;(*std::any_cast&lt;U&gt;(&amp;operand))
  </code></pre>
  <p>?</p>