букву T нельзя использовать, т.к. она используется в обявлении шаблона класса, это требует стандарт
Если всё же решите, использовать T для методов то внутри метода будет не понятно, какой T, это параметр шаблона класса или параметр шаблона метода класса, впрочем VS++ допускает подобное использование и использует T из шаблона метода, но gcc пошлёт всех стройными ряда в известном направлении
Не понял.
#include <iostream>
template<class T>
class X
{
public:
T &transit(T &a);
};
template<class T>
T &X<T>::transit(T &a)
{
return a;
}
int main()
{
int y = 3, z = 0;
X<int> x;
z = x.transit(y);
std::cout << z << std::endl;
return 0;
}
$ gcc -dumpversion
4.1.2
$ g++ -o test.out test.cpp
$ ./test.out
3
Или ты имеешь в виду, что вложенный параметр шабона не должен перекрывать внешний?
А кому это вообще надо? Кому в голову приходит такая мысль?