J'ai une collection de classes, qui doivent toutes fournir une fonction membre statique retournant un pointeur vers une chaine de caractère. Je souhaiterais factoriser au maximum mon code.
Voici mon approche sachant que ca coince à la compilation.
Je fais un modèle qui prend en argument la chaine de caractère et qui implémente la fonction statique :
Ensuite, je fais hériter toutes mes classes de ce modele en le spécialisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 template< char const * str> struct Base { inline static char const * affiche() { return str; } };
Le compilateur ne semble pas apprécier l'instanciation du modele. J'ai tenté de contourner le probleme en stockant la chaine dans une variable char const * intérmédiaire mais sans plus de succès car d'autres erreurs apparaissent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 struct A : Base<"A"> { /**/ }; struct B : Base<"B"> { /**/ }; struct C : Base<"C"> { /**/ }; struct D : Base<"D"> { /**/ };
Toutes suggestions sont les bienvenues. Ma conception object n'est peut etre pas optimale au dela du probleme de syntaxe.
Xter.
Partager