Salut à tous,
Ma question est simple : comment passer un pointeur de fonction avec template, comme argument d'une autre fonction avec template ?
Exemple :
Si je remplace func2(func_templ) par func(func_templ), tout est ok (pas d'erreur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Cependant, avec func2, j'ai :
En fait la fonction func2 ne parvient pas à définir le type U si on lui donne comme argument un pointeur de fonction à template.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>)'
Quelle est la solution ?
Merci![]()
Partager