[Fonction template]Déclaration invalide
Bonjour,
J'aimerais faire une fonction QuickExponentiation() (je sais pas si je dois la nommer ainsi) template. J'ai essayé ce code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
template<typename T,T e>
inline std:pair<T, T> QuickExponentiation(T p, const std::pair<T, T> point)
{
return p % 2 == 0 ? AddPoints(p, QuickExponentiation<e/2>(point), QuickExponentiation<e/2>(point)): AddPoints(p, QuickExponentiation<(e-1)/2>(point), AddPoints(p, QuickExponentiation<(e-1)/2>(point), point));
}
template<typename T>
inline std::pair<T, T> QuickExponentiation<1>(T p, const std::pair<T, T> point)
{
return point;
} |
Mais g++ me sort : déclaration de fonction invalide.
Comment y remédier?
Edit: Le std:pair<T, T> entrainait cette erreur. De toute manière, il y avait d'autres problèmes donc j'ai dé-templatisé.
Merci.