Witam! Uczę się ostatnio o szablonach i napotkałem pewien problem! Mianowicie napisałem funkcję max_fun(), która przyjmuje dwie liczby i porównuje je ze sobą, zwracając większą z nich. Później napisałem jej specjalizację częściową, która przyjmuje dwa wskaźniki do dwóch zmiennych, porównując wartości tych zmiennych (na które wskazują te właśnie wskaźniki) zamiast tych adresów, aby zwrócić adres do zmiennej z większą liczbą.
template <typename T> T max_fun(T a,T b)
{
return ( a > b ? a : b );
}
template <typename T> T* max_fun<T*>(T* p1,T* p2) // tutaj kompilator pokazuje błąd!
{
return ( *p1 > *p2 ? p1 : p2 );
}
Problem polega na tym, że kompilator pokazuje błąd "niedozwolona operacja", jak to rozwiązać?
Z góry dziękuje!