Not
Å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.
explicit specialisering "deklaration" är inte en specialisering av en funktionsmall
Anmärkningar
Du kan inte specialisera en funktion som inte är en mallfunktion.
Examples
I följande exempel genereras C2912:
// C2912.cpp
// compile with: /c
void f(char);
template<> void f(char); // C2912
template<class T> void f(T); // OK
Det här felet genereras också som ett resultat av kompilatorns överensstämmelsearbete som utfördes i Visual Studio .NET 2003: för varje explicit specialisering måste du välja parametrarna för den explicita specialiseringen, så att de matchar parametrarna för den primära mallen.
// C2912b.cpp
class CF {
public:
template <class A> CF(const A& a) {} // primary template
// attempted explicit specialization
template <> CF(const char* p) {} // C2912
// try the following line instead
// template <> CF(const char& p) {}
};