Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
'tipo' : modelo de classe não especializado ou genérico não pode ser usado como um modelo ou argumento genérico para modelo ou parâmetro genérico 'param', esperado um tipo real
Observações
Você passou um argumento inválido para um modelo de classe ou genérico. O modelo de classe ou genérico espera um tipo como parâmetro.
Este erro pode ser gerado como resultado do trabalho de conformidade do compilador que foi feito para o Visual Studio 2005: um modelo de classe não especializado não pode ser usado como um argumento de modelo em uma lista de classes base. Para resolver C3203, adicione explicitamente o(s) parâmetro(s) de tipo de modelo ao nome da classe de modelo ao usá-lo como um parâmetro de modelo em uma lista de classes base.
Examples
O exemplo a seguir gera C3203:
// C3203.cpp
template< typename T >
struct X {
void f(X) {}
};
template< typename T >
struct Y : public X<Y> { // C3203
// try the following line instead
// struct Y : public X<Y<T> > {
void f(Y) {}
};
int main() {
Y<int> y;
}
O exemplo a seguir gera C3203 e mostra como corrigi-lo:
// C3203_b.cpp
// compile with: /c
template <class T>
struct S1 {};
template <class T>
class C1 {};
typedef C1<S1> MyC1; // C3203
// OK
template <template <class> class T>
class C2 {};
typedef C2<S1> MyC1;
template <class T>
class C3 {};
typedef C3<S1<int> > MyC12;
C3203 também pode ocorrer ao usar genéricos:
// C3203_c.cpp
// compile with: /clr /c
generic <class T>
value struct GS1 {};
generic <class T>
value struct GC1 {};
typedef GC1<GS1> MyGC1; // C3203
typedef GC1<GS1<int> > MyGC2; // OK