Utiliser * dans des macro #define ... ???

Utiliser * dans des macro #define ... ??? - C++ - Programmation

Marsh Posté le 04-03-2004 à 14:53:00    

Bonjout @ tous,
 
J´aurais besoins (pour des raisons bien compliquées à expliquer, désolé) de définir une macro du genre suivant:
#define newELeave* new(ELeave)
En gros, je voudrais que le précompilateur me remplace tous les newELeave* qu´il trouve dans mon code par new(ELeave)... Apparement, on ne peut pas définir de macro avec des "*"...
Existe-t-il une solution ?
(Je génére du code automatiquement, c´est pour ca que je suis amené à faire des trucs bizarres et pas très logiques...)
 
Merci de votre aide !!!
Fafix

Reply

Marsh Posté le 04-03-2004 à 14:53:00   

Reply

Marsh Posté le 04-03-2004 à 15:01:39    

new(ELeave) ?

Reply

Marsh Posté le 04-03-2004 à 15:14:06    

toute façon tu ne peux pas, et ça ne résoudra pas tous tes problèmes, il faut une véritable regex pour faire ça. mais si je comprends toujours pas ce que tu veux faire.
 
si tu veux faire un bon remplacement une fois pour tout, utilise regexxer ou simplement sed
 
 

Reply

Marsh Posté le 04-03-2004 à 15:20:43    

Fafix a écrit :

Bonjout @ tous,
 
J´aurais besoins (pour des raisons bien compliquées à expliquer, désolé) de définir une macro du genre suivant:
#define newELeave* new(ELeave)
En gros, je voudrais que le précompilateur me remplace tous les newELeave* qu´il trouve dans mon code par new(ELeave)... Apparement, on ne peut pas définir de macro avec des "*"...
Existe-t-il une solution ?
(Je génére du code automatiquement, c´est pour ca que je suis amené à faire des trucs bizarres et pas très logiques...)
 
Merci de votre aide !!!
Fafix


 
Si c'est pour tout ton code, un petit coup de sed s'impose. (sed s/"newELeave\*"/new(ELeave)/g)
 
Sinon, puisque tu génères toi même le code, pourquoi ne le génères-tu pas correctement dès le départ ? Ca t'éviterait d'avoir à le rattraper ensuite.

Reply

Marsh Posté le 04-03-2004 à 15:49:19    

En fait, j´adapte un générateur de code qui prend un diagramme UML et en fait du C++ pour coder du Symbian C++. Je n´ai donc pas vraiment accès aux sources du générateur mais seulement à des templates qui ne permettent pas de gérer toutes les modifications que je dois apporter. De ce fait, je n´ai pas d´autre solutions que de bidouiller avec des astuces bidons...
Je ne connais pas le sed, je cherche ca de suite, merci @ tous !!!

Reply

Marsh Posté le 04-03-2004 à 15:51:29    

Ok, j´suis un boulet, je viens de comprendre que la commande sed est sous unix.
Je dois pouvoir faire ca avec un petit script perl sans problème, non ? C´est le bordel les commandes pour remplacer des chaines de caractères en perl, mais je vais y arriver :-p

Reply

Marsh Posté le 04-03-2004 à 16:40:24    

Fafix a écrit :

Ok, j´suis un boulet, je viens de comprendre que la commande sed est sous unix.
Je dois pouvoir faire ca avec un petit script perl sans problème, non ? C´est le bordel les commandes pour remplacer des chaines de caractères en perl, mais je vais y arriver :-p


 
oui, mais si tu es sous windows, tu peux aussi installer et utiliser cygwin.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed