Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'type': třída není typ třídy
Poznámky
Nejběžnější příčinou této chyby je, že v okamžiku definice existují obecnější seznamy parametrů nebo seznamů parametrů šablony, než bylo v okamžiku deklarace.
Examples
Následující příklad vygeneruje C3856:
// C3856.cpp
template <class T>
struct S {
template <class T1>
struct S1;
void f();
};
template <class T> // C3856
template <class T1>
template <class T2> // extra template parameter list in definition
struct S<T>::S1{};
Možné řešení:
// C3856b.cpp
// compile with: /c
template <class T>
struct S {
template <class T1>
struct S1;
void f();
};
template <class T>
template <class T1>
struct S<T>::S1{};
K C3856 může také dojít při použití obecných typů:
// C3856c.cpp
// compile with: /clr
generic <class T>
ref struct GS {
generic <class U>
ref struct GS2;
};
generic <class T>
generic <class U>
generic <class V>
ref struct GS<T>::GS2 {}; // C3856
Možné řešení:
// C3856d.cpp
// compile with: /clr /c
generic <class T>
ref struct GS {
generic <class U>
ref struct GS2;
};
generic <class T>
generic <class U>
ref struct GS<T>::GS2 {};