Mám problém s programovacím cvičením v Mistrovství v C++. Zadání je vytvořit šablonu funkce maxn, která přijímá jako parametry pole typu T a počet prvků pole a navrací největší prvek. Tuto část jsem ještě zvládla. Dále se má vytvořit specializace, která přijímá pole ukazatelů na char a počet ukazatelů a navrací největší řetězec.
#include <iostream>
using namespace std;
template <class T>
T maxn(const T [], int);
template <>
char* maxn(const char* p[], int n);
int main()
{
return 0;
}
template <class T>
T maxn(const T p[], int n)
{
T max;
for (int i=0; i < n; i++)
{
if (i==0 || p[i] > max)
max = p[i];
}
return max;
}
template <>
char* maxn(const char* p[], int n)
{return &(p[0]);}
Program mi vyhazuje chybu
template-id `maxn<>' for `char* maxn(const char**, int)' does not match any template declaration
na řádcíh 8 a 29, tedy
char* maxn(const char* p[], int n)
a ještě
invalid function declaration
také na řádku 29.
V čem dělám chybu?