Hej, mam problem z zadaniem z rodziału 8 książki Stephena Prata. Polecenie jest następujące:
Napisz szablon funkcji maxn() pobierającej jako parametry tablice typu T oraz liczbę elementów tej tablicy, zwracającej największy element tablicy. (...) Program powiniem korzystać ze specjalizacji przyjmującej jako parametr tablice typu char, zwracającej adres najdłuższego napisu. Jeśli jest kilka najdłuższych łańcuchów, funkcja powinna zwracać adres pierwszego z nich. Sprawdź specjalizacje z tablicą 5 łańcuchów.
Mam problem ze specjalizacją .
Napisałam coś takiego:
//trzeba zrobić także dla typu int i double:
template<class T>
auto maxn(T wartosci[],int wielkosc_tablicy) -> decltype(wartosci[0]
//z tablicą char*[] mam problem ...
template <>
auto maxn < char *>( char * wartosci[]) -> char*
{
static char* wynik = *wartosci[0];
for(int i=1; i<5; i++)
{
if(strlen(*wartosci[i])>strlen(wynik))
wynik = *wartosci[i];
}
return &wynik;
}