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.
'function' : nesmí být explicitně specializovaná.
Poznámky
Kompilátor zjistil pokus o explicitní specializaci funkce dvakrát.
Examples
Následující příklad generuje C2910:
// C2910.cpp
// compile with: /c
template <class T>
struct S;
template <> struct S<int> { void f() {} };
template <> void S<int>::f() {} // C2910 delete this specialization
C2910 lze také vygenerovat, pokud se pokusíte explicitně specializovat člena, který není šablonou. To znamená, že se můžete explicitně specializovat pouze na šablonu funkce.
Následující příklad generuje C2910:
// C2910b.cpp
// compile with: /c
template <class T> struct A {
A(T* p);
};
template <> struct A<void> {
A(void* p);
};
template <class T>
inline A<T>::A(T* p) {}
template <> A<void>::A(void* p){} // C2910
// try the following line instead
// A<void>::A(void* p){}
Tato chyba se také vygeneruje v důsledku práce kompilátoru, která byla provedena v sadě Visual Studio .NET 2003:.
Kód bude platný ve verzích Visual Studio .NET 2003 a Visual Studio .NET sady Visual C++, odeberte template <>.
Následující příklad generuje C2910:
// C2910c.cpp
// compile with: /c
template <class T> class A {
void f();
};
template <> class A<int> {
void f();
};
template <> void A<int>::f() {} // C2910
// try the following line instead
// void A<int>::f(){} // OK