Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"type" : niespecjalizowany szablon klasy lub ogólny nie można użyć jako szablonu lub ogólnego argumentu dla szablonu lub parametru ogólnego "param", oczekiwano rzeczywistego typu
Uwagi
Przekazano nieprawidłowy argument do szablonu klasy lub ogólnego. Szablon klasy lub ogólny oczekuje typu jako parametru.
Ten błąd można wygenerować w wyniku pracy zgodności kompilatora, która została wykonana dla programu Visual Studio 2005: nie można użyć niespecjalizowanego szablonu klasy jako argumentu szablonu na liście klas bazowych. Aby rozwiązać problem C3203, jawnie dodaj parametry typu szablonu do nazwy klasy szablonu podczas używania go jako parametru szablonu na liście klas bazowych.
Przykłady
Poniższy przykład generuje 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;
}
Poniższy przykład generuje kod C3203 i pokazuje, jak rozwiązać ten problem:
// 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 może również wystąpić w przypadku używania typów ogólnych:
// 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