Templates et pointeurs de fonctions
Bonjour,
j'ai essayé de compiler le code suivant, mais j'obtiens un joli : "No matching function for call test()", le template pose problème évidemment puisque lorsque je l'enlève, cela fonctionne correctement:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
template <class T>
void test()
{
A classA(5);
B classB("Bonjour");
C classC(6.4);
int (A::*ptrA)() = &A::r;
std::string (B::*ptrB)() = &B::s;
float (C::*ptrC)() = &C::z;
std::vector<T (A::*)()> _vectorPtrFct;
_vectorPtrFct.push_back(ptrA);
_vectorPtrFct.push_back(ptrB);
_vectorPtrFct.push_back(ptrC);
}
int main (int argc, char * const argv[]) {
test();
return 0;
} |
J'ai beau cherché je ne trouve pas l'erreur, peut-être est-ce simplement une erreur toute bête(j'en suis même convaincu) mais je ne comprends pas ce qui ne passe pas.
Merci d'avance.