Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
'tipo': impossibile utilizzare il tipo di classe non specializzato come argomento di tipo per il parametro di tipo 'param'. Previsto un tipo reale
'type' : unspecialized class type can't be used as a type argument for type parameter 'param', expected a real type
È stato passato un argomento non valido a un modello o elemento generico di classe. Il parametro previsto per un modello o elemento generico di classe è un tipo.
Questo errore può essere generato come risultato delle operazioni di conformità eseguite per Visual C++ 2005: un modello di classe non specializzato non può essere utilizzato come argomento di modello in un elenco di classi base. Per correggere l'errore C3203, aggiungere esplicitamente parametri di tipo modello al nome della classe modello quando la si utilizza come parametro di modello in un elenco di classi base. Per ulteriori informazioni, vedere Ultime modifiche al compilatore Visual C++ 2005.
// 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;
}
Nell'esempio seguente viene generato l'errore C3203:
// 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;
L'errore C3203 può verificarsi anche quando si utilizzano i generics:
// 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