Modelos para membros de classe
Ao criar uma definição de out-of-line para um membro de uma classe de modelo, os parâmetros de modelo devem ser especificados o nome do tipo e não o nome do membro.
Exemplo
// templates_for_class_members.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
template <class T>
struct X {
X();
void Test();
static const int i;
};
template <class T>
X< T >::X() {
cout << "X created." << endl;
}
template <class T>
void X< T >::Test() {
cout << "In Test." << endl;
}
template <class T>
const int X<T>::i = 9;
int main() {
X<int> x;
x.Test();
cout << X<int>::i << endl;
}