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 : 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; }
};
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
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.