Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"funktion" : kan inte uttryckligen vara specialiserad
Anmärkningar
Kompilatorn upptäckte ett försök att uttryckligen specialisera en funktion två gånger.
Examples
I följande exempel genereras 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 kan också genereras om du uttryckligen försöker specialisera en medlem som inte är mall. Du kan alltså bara uttryckligen specialisera dig på en funktionsmall.
I följande exempel genereras 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){}
Det här felet genereras också som ett resultat av kompilatorns efterlevnadsarbete som utfördes i Visual Studio .NET 2003:.
För att koden ska vara giltig i både Visual Studio .NET 2003 och andra versioner av Visual Studio .NET för Visual C++, ta bort template <>.
I följande exempel genereras 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