title: static_assert that a type is among a std::variant's accepted types
body: <p>In C++17 how can one verify in a <code>constexpr</code> that a type belongs to the typelist of a variant ?</p>
  
  <p>e.g:</p>
  
  <pre><code>using MyVt = std::variant&lt;int, float&gt;;
  static_assert( MyVt::has_type&lt; bool &gt;::value, "oops, forgot bool");
  </code></pre>
  
  <p>or</p>
  
  <pre><code>static_assert( mpl::has_key&lt; MyVt::typelist, T &gt;::value, "oops, forgot T");
  </code></pre>
  
  <p>Of course more useful in concept expressions, or just as <code>static_assert</code> in a template function; to restrict the possible types accepted.</p>
  
  <p>If we don't have access to an explicitly supported standard metafunction or metalist for this, would it be possible to hack a check using SFINAE involving a constructor expression ?</p>