[C++] Enum.toString simple et efficace

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [C++] Enum.toString simple et efficace

Message  jonas le Mar 29 Mar 2011, 01:03

Code:


/* dans H */

// sources pour les macros:
// http://jeremy.chatelaine.name/blog/programmation/enumtostring-en-c
// http://www.coder-studio.com/blog/preproc/

#define MY_LIST_REP(x) \
   x(ERROR) x(HELLO) x(QUIT) x(OKWAIT) x(ACK) x(NACK)

#define LST_ELE_S(x) #x,
#define LST_ELE(x) x,

class Rep
{
public:
   enum rep
   {
      MY_LIST_REP(LST_ELE)
   };

   static const char * repS[];
};

inline ConsoleStream & operator<<(ConsoleStream & cs, const Rep::rep & e)
{
   //cs << rep::repS[(int)e]; // ConsoleStream << char *
   cs << Rep::repS[(int)e]; // ConsoleStream << char *
   return cs;
}

/* dans CPP */
const char * Rep::repS[] = { MY_LIST_REP(LST_ELE_S)   };


Il est aussi possible d'utiliser une chaîne différente du nom de l'enum... mais du coup ça fait plus à écrire donc j'aime bien cette méthode-ci :p


Dernière édition par jonas le Mar 29 Mar 2011, 21:20, édité 2 fois (Raison : les classes c'est mieux :p)

jonas

Nombre de messages : 234
Prénom : Jonathan
Statut : Ancien industrialisé
Localisation : Devant son clavier BÉPO !
Date d'inscription : 29/09/2008

http://www.xax.be

Revenir en haut Aller en bas

resolu Re: [C++] Enum.toString simple et efficace

Message  jonas le Lun 20 Juin 2011, 19:34

pourtant ça fonctionne bien !



(d'ailleurs je le up pour retrouver mon code car j'en ai besoin :p)

jonas

Nombre de messages : 234
Prénom : Jonathan
Statut : Ancien industrialisé
Localisation : Devant son clavier BÉPO !
Date d'inscription : 29/09/2008

http://www.xax.be

Revenir en haut Aller en bas

resolu Re: [C++] Enum.toString simple et efficace

Message  nvs le Lun 20 Juin 2011, 21:18

un static_cast<int>(e) serait plus propre...







clown

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [C++] Enum.toString simple et efficace

Message  Contenu sponsorisé Aujourd'hui à 14:32


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum