Modèles pour les membres de classe
En créant une définition hors ligne d'un membre d'une classe de modèle, les paramètres du modèle doivent être spécifiées sur le nom de type et non sur 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;
}