Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
jawna specjalizacja "deklaracja" nie jest specjalizacją szablonu funkcji
Uwagi
Nie można specjalizować funkcji innej niż szablon.
Przykłady
Poniższy przykład generuje C2912:
// C2912.cpp
// compile with: /c
void f(char);
template<> void f(char); // C2912
template<class T> void f(T); // OK
Ten błąd zostanie również wygenerowany w wyniku pracy zgodności kompilatora wykonanej w programie Visual Studio .NET 2003: dla każdej jawnej specjalizacji należy wybrać parametry jawnej specjalizacji, tak aby były zgodne z parametrami szablonu podstawowego.
// 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) {}
};