[C++] Jawna specjalizacja

Awatar użytkownika
steal
Użytkownik
Użytkownik
Posty: 1043
Rejestracja: 7 lut 2007, o 18:35
Płeć: Mężczyzna
Lokalizacja: Białystok|Warszawa
Podziękował: 6 razy
Pomógł: 160 razy

[C++] Jawna specjalizacja

Post autor: steal »

Kod: Zaznacz cały

template<typename T>
T maxn(T tab[],int length){
	T max = tab[0];
	for (int i=1; i<n; ++i)
		max = (tab[i] > max) ? tab[i] : max;
	return max;
}

template <> 
char * maxn<char *>(char tab[],int length){
	char * adres = tab;

	return adres;
}
Wywala mi błąd:

Kod: Zaznacz cały

error C2912: explicit specialization; 'char *maxn<char*>(char [],int)' is not a specialization of a function template
Jak poprawnie wygląda w tym przypadku specjalizacja szablonu?
Dooh
Użytkownik
Użytkownik
Posty: 81
Rejestracja: 7 lis 2004, o 14:22
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 5 razy
Pomógł: 8 razy

[C++] Jawna specjalizacja

Post autor: Dooh »

zabrakło blasku gwiazdy

template <>
char * maxn<char *>(char * tab[],int length) { ...
Tomcat
Użytkownik
Użytkownik
Posty: 327
Rejestracja: 23 mar 2009, o 21:51
Płeć: Mężczyzna
Lokalizacja: Świdnica
Podziękował: 10 razy
Pomógł: 62 razy

[C++] Jawna specjalizacja

Post autor: Tomcat »

Heh szukałem tego błędu w Twoim kodzie ładną chwilę, a tu się okazuję, że po prostu do specjalizacji podałeś dwa różne typy. Tak proste, że aż najbardziej możliwe do przydarzenia się
ODPOWIEDZ