title: Using declaration for type alias template in derived class with tempate base
body: <p>If the base class depends on the template parameter, its scope is not examined in the unqualified name lookup. I can use the <code>using</code> declaration to introduce names from the base class. Suppose now I have a type alias template in the base class. Can the <code>using</code> declaration be used to introduce it into the derived class?</p>
  
  <pre><code>template&lt;class T&gt;
  struct Base
  {
      using Type1 = int;
  
      template&lt;typename S&gt;
      using Type2 = S;
  };
  
  template&lt;class T&gt;
  struct Derived : Base&lt;T&gt;
  {
      using typename Base&lt;T&gt;::Type1;           // Fine
      //using Type1 = typename Base&lt;T&gt;::Type1; // Also fine
  
      template&lt;typename S&gt;
      using Type2 = typename Base&lt;T&gt;::template Type2&lt;S&gt;;
  };
  </code></pre>
  
  <p>Can the line for <code>Type2</code> be replaced with something similar to the (uncommented) line for <code>Type1</code>?</p>