title: How to detect a type type alias?
body: <p>I can detect a member using the following template check:</p>
  
  <pre><code>template &lt;typename T, typename = void&gt;
  struct hasMember : std::false_type {};
  template &lt;typename T&gt;
  struct hasMember&lt;T, decltype((void)T::member, void())&gt; : std::true_type {};
  </code></pre>
  
  <p>E.g. for:</p>
  
  <pre><code>class Test{
  public:
     int member;
     using sometype = size_t; 
  }
  </code></pre>
  
  <p>I could do:</p>
  
  <pre><code>if constexpr(hasMember&lt;Test&gt;)
  {
     //do something
  }
  </code></pre>
  
  <p>Now suppose I need a <code>constexpr if</code> that tells me if a class has a using definition. I.e. something that could detect that some class (e.g. <code>test</code>) has a using definition of some type. I.e. something like </p>
  
  <pre><code>if constexpr(hasSomeType&lt;Test&gt;)
  {
       //do something
  } 
  </code></pre>
  
  <p>Is this possible in c++17? How?</p>