Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
type: неспециализированный шаблон класса нельзя использовать в качестве аргумента шаблона или универсального аргумента для шаблонного или универсального параметра param, требуется действительный тип
Замечания
Шаблонному или универсальному классу передан недопустимый аргумент. Шаблонный или универсальный класс ожидает тип в качестве параметра.
Эта ошибка может быть создана в результате выполнения компилятором работы, которая была выполнена для Visual Studio 2005: неспециализированный шаблон класса нельзя использовать в качестве аргумента шаблона в списке базовых классов. Для устранения ошибки C3203 следует явным образом добавить параметры типов в имя класса шаблона при использовании его в качестве параметра шаблона в списке базовых классов.
Примеры
В следующем примере возникает ошибка 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;
}
В следующем примере создается 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;
Ошибка C3203 также может возникнуть при использовании универсальных шаблонов.
// 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