Mám za úlohu napísať šablónu funkcie maxn(), ktorá príma ako argumenty pole položiek typu T a celé číslo reprezentujúce počet prvkov pola a ktorá vracia jeho najväčší prvok. Ďalej mám vytvoriť špecializáciu, ktorá preberá pole ukazovateľov na char ako jeden argument a počet ukazovateľ ako druhý argument a ktorá vracia adresu najdlhšieho reťazca.
A práve s tým prototypom explicitnej špecializácie mám problém, nechce mi ho uznať.
#include <iostream>
using namespace std;
template <typename T>
T maxn(const T arr[], int n);
template <> char *maxn<char, int>(const char *arr[], int n); // nechce uznat *maxn
int main()
{
int arr1[] = {9, 0, 69, 44, 55, 3};
double arr2[] = {0.5, 5.9, 8.45, 69.69};
cout << "najvacsi prvok je: " << maxn(arr1, 6) << endl;
cout << "najvacsi prvok je: " << maxn(arr2, 4) << endl;
system("PAUSE");
}
template <typename T>
T maxn(const T arr[], int n){
T max = 0;
for(int i = 0; i < n; i++){
if(arr[i] > max)
max = arr[i];
}
return max;
}