Erreur du compilateur C3212
'specialization' : une spécialisation explicite d’un membre de modèle doit être membre d’une spécialisation explicite
Une spécialisation explicite est incorrecte.
L’exemple suivant génère l’erreur C3212 :
// C3212.cpp
// compile with: /LD
template <class T>
struct S {
template <class T1>
struct S1;
};
template <class T> // C3212
template <>
struct S<T>::S1<int> {};
/*
// try the following instead
template <>
template <>
struct S<int>::S1<int> {};
*/
/*
// or, the following
template <>
struct S<int> {
template <class T1>
struct S1;
};
template <>
struct S<int>::S1<int> {
};
*/