Compartir a través de


Error del compilador C3212

'specialization': una especialización explícita de un miembro de plantilla debe ser un miembro de una especialización explícita

Una especialización explícita estaba mal formada.

El ejemplo siguiente genera la advertencia 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> {
};
*/