Hello,
Est-il possible de faire un typedef templatisé pouer quelque quelque chose comme ça ?
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part T* (*)(const char *)
Hello,
Est-il possible de faire un typedef templatisé pouer quelque quelque chose comme ça ?
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part T* (*)(const char *)
Puis ensuite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 template<class T> struct MaMethodeTrait { typedef T* (*MonTypeDeMethode)(const char *); };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 int* UneFonction(const char*) { return NULL; } char* UneAutreFonction(const char*p) { return NULL; } typedef unsigned char T[5]; int main() { MaMethodeTrait<int>::MonTypeDeMethode L_pfnMaMethode; L_pfnMaMethode = UneFonction; L_pfnMaMethode("t"); MaMethodeTrait<char>::MonTypeDeMethode L_pfnMaMethode2; L_pfnMaMethode2 = UneAutreFonction; L_pfnMaMethode("a"); return 0; }
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Hmmm... Merci pour cet exemple, mais je crois qu'il ne correspond pas à mon besoin, parce que j'ai mal formulé la chose.
En fait, je veux templatiser l'expression (que je sais incorrecte) :
pour une utilisation dans ce gerne là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part typedef (T* (*MonTypeDeMethode)(const char *)) version_courte;
Si c'est effectivement ce que tu avais compris, c'est que je suis très mauvais. :-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part version_courte<T>
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
C'est moi qui ai mal du expliquer ma méthode:Et ensuite, l'utilisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 template<class T> struct MaMethodeTrait { typedef T* (*version_courte)(const char *); };
Code : Sélectionner tout - Visualiser dans une fenêtre à part MaMethodeTrait::version_courte<T>
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
P.S.: j'ai quand même l'impression que tu as résolus ton problème de fabrique avec une solution qui te créés encore plus de problème (cette question et les questions dans boost)... Fais un petit tour sur la FAQ sur les politiques et les traits (merci Alp), je pense que cela pourra beaucoup t'apporter dans ce que tu es en train de faire.
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Tu ne peux pas avoir version_courte<T>, mais uniquement version_courte<T>::type.
Petite faute de frappe (ou faute de petite frappe?). Dsl
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Sinon, le template typedef tel que tu souhaiterais le faire va arriver avec C++0x![]()
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
Partager