Bonjour,
Je n'arrive pas à ecrire un #define qui transforme mes struture du type
opt.n.mes_variables en opt.mes_variables
J'ai essayé "#define opt.n opt" sans succé
Merci de votre aide
Version imprimable
Bonjour,
Je n'arrive pas à ecrire un #define qui transforme mes struture du type
opt.n.mes_variables en opt.mes_variables
J'ai essayé "#define opt.n opt" sans succé
Merci de votre aide
Un define va remplacer un token par une série de tokens, or là, tu voudrais remplacer une série de tokens par une autre...
Une solution potentielle à ton problème, sans passer par des define (mais qui a a priori un coût runtime) :
L'alternative étant de repasser dans tout le code pour supprimer ce n...Code:
1
2
3
4
5
6 struct S { S &n; S() : n(*this) {} // Mes données classiques };
Je crois que ce que tu veux faire n'est pas possible
ici une référence de la syntaxe #define (http://msdn2.microsoft.com/en-us/lib...93(VS.80).aspx) et le caractère '.' apparait comme un séparateur donc "opt.n" n'est pas un identifier valide ?
par contre, tu peut peut être tenter un truc genre :
#define new_opt opt.n
et la tu dois avoir le droit d'écrire "new_opt.mes_variables" au lieu de "opt.n.mes_variables" (bon d'accord, l'écriture est plus longue dans cet exemple :?)
Merci, JolyLoic , ta struture alternative fonctionne trés bien et me permet de m'en sortir sans modifier mon code