title: How can I use template parameter name outside the class?
body: <p>I am learning c++.
  I would like to use template parameter name as it is outside the class.
  I could not find the best solution but now I use "using" declaration. However it cannot use same name.
   Are there any better solution? Or Are there any good habit or good naming  to re-declare template parameter by "using"? </p>
  
  <p>The following code are example; it re-declare T_TypeA by using Type = T_TypeA but I would like to use T_TypeA as it is in struct B.</p>
  
  <pre><code>template &lt;typename T_TypeA&gt;
  struct A {
      using Type = T_TypeA;
  };
  
  template &lt;typename Object&gt;
  struct B {
      using Type = typename Object::Type;
      Type object = 3;
  };
  
  void test_using_for_template_parameter_name(void) {
      B&lt;A&lt;int&gt;&gt; b;
      std::cout &lt;&lt; "value = " &lt;&lt; b.object &lt;&lt; std::endl;
  }
  </code></pre>