Здесь нет шаблона создания экземпляра.Последняя половина этого кода просто определяет конструктор для класса AT
.Обратите внимание, что при выполнении этого обычно используется одинаковые имена для параметров шаблона:
template<class A>
class AT
{
AT();
};
template<class A>
AT<A>::AT()
{}
Использование этого синтаксиса будет означать разрыв циклов зависимости:
template<class A>
class AT
{
AT();
};
class Dependent
{
AT<Dependant> member; // Complete definition of AT is needed here
};
template<class A>
AT<A>::AT()
{
Dependent object; // Complete definition of Dependent is needed here
}