template <typename A>
class TMP1
{
...
TMP1() { ... } /* Вариант 1. */
...
};
и
template <typename A>
class TMP2
{
...
TMP2<A>() { ... } /* Вариант 2. Зачем введена такая запись конструктора? Как она может использоваться в отличном от первого варианта контексте */
...
};
Такая запись работает при компиляции Borland C++ и g++ ( на других не проверял )