Pointeur de fonction avec template
Salut à tous,
Ma question est simple : comment passer un pointeur de fonction avec template, comme argument d'une autre fonction avec template ?
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| template <class T>
void func_templ(T) {};
void func(void (*)(int)) {};
template <class U>
void func2(U) {};
int main (void)
{
func2(func_templ);
return 0;
} |
Si je remplace func2(func_templ) par func(func_templ), tout est ok (pas d'erreur).
Cependant, avec func2, j'ai :
Code:
1 2 3
| g++ -Wall -o c.o c.cpp && ./c.o
c.cpp: In function 'int main()':
c.cpp:13: error: no matching function for call to 'func2(<unresolved overloaded function type>)' |
En fait la fonction func2 ne parvient pas à définir le type U si on lui donne comme argument un pointeur de fonction à template.
Quelle est la solution ? :)
Merci :D