title: why doesn't std::any_cast support implicit conversion?
body: <p>Why does <code>std::any_cast</code> throw a <code>std::bad_any_cast</code> exception when an implicit conversion from the actual stored type to the requested type would be possible?</p>
  
  <p>For example:</p>
  
  <pre><code>std::any a = 10;  // holds an int now
  auto b = std::any_cast&lt;long&gt;(a);   // throws bad_any_cast exception
  </code></pre>
  
  <p>Why is this not allowed and is there a workaround to allow an implicit conversion (in case the exact type that <code>std::any</code> holds is unknown)?</p>