title: Why can't a typedef type be used to declare its parent class' ctors?
body: <pre><code>template&lt;typename&gt;
  struct A
  {
      int n;
  
      A(bool)
      {}
  };
  
  template&lt;typename&gt;
  struct B
  {
      struct C : A&lt;B&gt;
      {
          using Base = A&lt;B&gt;;
  
          using A&lt;B&gt;::A; // ok
          using Base::n; // ok
  
          // error: dependent using declaration resolved to type without 'typename'
          using Base::A;
      };
  
      C get() const
      {
          return C(true);
      }
  };
  
  int main()
  {
      auto b = B&lt;int&gt;();
      b.get();
  }
  </code></pre>
  
  <p>The error is described in the code.</p>
  
  <p><strong>Why can't a typedef type be used to declare its parent class' ctors?</strong></p>