Modèles pour les membres de classe
Lors de la création d'une définition hors ligne d'un membre d'une classe de modèle, les paramètres du modèle doivent être spécifiés dans le nom de type et pas dans le nom de membre.
Exemple
// 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;
}