[C++] Factorisation de code
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 :
Code:
1 2 3 4 5
| template< char const * str>
struct Base
{
inline static char const * affiche() { return str; }
}; |
Ensuite, je fais h�riter toutes mes classes de ce modele en le sp�cialisant :
Code:
1 2 3 4
| struct A : Base<"A"> { /**/ };
struct B : Base<"B"> { /**/ };
struct C : Base<"C"> { /**/ };
struct D : Base<"D"> { /**/ }; |
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.
Toutes suggestions sont les bienvenues. Ma conception object n'est peut etre pas optimale au dela du probleme de syntaxe.
Xter.