title: Using typedef of template class in another class
body: <p>I got the following challenge.</p>
  
  <p>I got a template class that defines a boost shared_ptr as a type.</p>
  
  <pre><code>template&lt;typename T, int a, int b&gt;
  class AbstractSmth{
  
  public:
  
  typedef boost::shared_ptr&lt; AbstractSmth &gt; ABSTR_SMTH;
  
  ...
  };
  </code></pre>
  
  <p>and an other also template class, in which I want to use that type. I know the following syntax works.</p>
  
  <pre><code>template&lt;typename T, int a, int b&gt;
  class AbstractOtherThing{
  
  public:
  
      typename AbstractSmth&lt;T,a,b&gt;::ABSTR_SMTH p_smth;
  
      void myFancyFunction(typename AbstractSmoother&lt;T,a, b&gt;::ABSTR_SMTH baz){
      ...
  }
  
  };
  </code></pre>
  
  <p>Is it possible to use that type as a typedef inside that class? Maybe something like this:</p>
  
  <pre><code>template&lt;typename T, int a, int b&gt;
  class AbstractOtherThing{
  
  public:
  
      using typename AbstractSmth&lt;T,a,b&gt;::ABSTR_SMTH;
  
      ABSTR_SMTH p_smth;
  
      void myFancyFunction(ABSTR_SMTH baz){
      ...
  }
  
  };
  </code></pre>
  
  <p>Best regards and happy new year!</p>