Bonjour,

Je souhaiterai générer des lignes de commentaires par macro en C++.
Vous me direz "Mais quel est l'interêt ?". Selon une directive de compilation (définition d'une variable par -DENABLE_META dans la ligne de compilation) je souhaite définir une macro ayant un comportement différent si cette directive de compilation n'existe pas. Dans un cas elle génère du code dans l'autre elle s'abtient d'en produire. Par contre quand je souhaite regarder la sortie du précompilateur j'aimerai avoir des lignes de commentaires et non simplement du vide.
Les Macros utilisent des trigrammes pour réaliser des caractères comme # ou / mais cette solution ne marche pas. J'ai aussi essayé de définir par Macro le dièse #define DIESE # ou bien le slash #define SLASH /. Puis utiliser ces définitions dans ma macro mais cela ne contourne pas le problème. Les concaténations (##) ne solutionnent pas le problème qui est que le précompilateur est fait pour ne pas générer de caractères tels que # ou /.

Voici ma macro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
#ifdef ENABLE_META
    #define WRITE_META(aInstance) aInstance->Generate();
#else // We do not do traces.
    #define WRITE_META(aInstance) // Meta unavailable, compile with -DENABLE_META. The command was aInstance.
#endif
Je voudrai que le commentaire "// Meta unavailable, compile with -DENABLE_META. The command was aInstance." puisse apparaitre quand je regarde la sortie du précompilo (g++ -E).

J'en suis arrivé à la conclusion que ce n'était pas possible par Macro. SI quelqu'un a une idée...

Merci.