Aracılığıyla paylaş


Derleyici Hatası C3203

'type' : belirtilmemiş sınıf şablonu veya genel şablon veya genel bir şablon veya genel bağımsız değişken olarak kullanılamaz, 'param' genel parametresi için gerçek bir tür bekleniyor

Açıklamalar

Sınıf şablonuna veya genele geçersiz bir bağımsız değişken geçirdiniz. Sınıf şablonu veya genel parametre olarak bir tür bekler.

Bu hata, Visual Studio 2005 için yapılan derleyici uyumluluğu çalışmasının bir sonucu olarak oluşturulabilir: belirtilmemiş bir sınıf şablonu temel sınıf listesinde şablon bağımsız değişkeni olarak kullanılamaz. C3203 sorununu çözmek için, şablon türü parametrelerini bir temel sınıf listesinde şablon parametresi olarak kullanırken şablon sınıfı adına açıkça ekleyin.

Örnekler

Aşağıdaki örnek C3203 oluşturur:

// 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;
}

Aşağıdaki örnek C3203 oluşturur ve nasıl düzeltileceğini gösterir:

// 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, genel değerler kullanılırken de oluşabilir:

// 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