Illegal escape sequence avec macro C++
Résolu
Gaeta78
-
Gaeta78 -
Gaeta78 -
Bonjour,
j'ai dans du code C++ les macros suivantes définies dans Macro.h:
#define M_Atl_Attribut(inouttype,attrname)\ \
inouttype attrname() const\
{\
return attrname##_;\
}\
\
int attrname(inouttype val)\
{\
attrname##_ = val;\
return TRUE;\
}
#define M_Atl_AttributDEF(type,identifiant) \
type identifiant() const; \
int identifiant(type val)
#define M_Atl_AttributIMPL(classe,type,identifiant)\ \
type classe::identifiant() const\
{\
return identifiant ## _;\
}\
\
int classe::identifiant(type val)\
{\
identifiant ## _ = val;\
return TRUE;\
}
Si j'utilise ces macros dans un cpp incluant Macro.h je me retrouve avec une erreur "error C2017: illegal escape sequence" lorsque j'appelle l'une des macros. Par exemple :
M_Atl_AttributIMPL(Atl_Torseur,RWCString,u) dans un cpp génère cette erreur.
Voyez vous une solution?
j'ai dans du code C++ les macros suivantes définies dans Macro.h:
#define M_Atl_Attribut(inouttype,attrname)\ \
inouttype attrname() const\
{\
return attrname##_;\
}\
\
int attrname(inouttype val)\
{\
attrname##_ = val;\
return TRUE;\
}
#define M_Atl_AttributDEF(type,identifiant) \
type identifiant() const; \
int identifiant(type val)
#define M_Atl_AttributIMPL(classe,type,identifiant)\ \
type classe::identifiant() const\
{\
return identifiant ## _;\
}\
\
int classe::identifiant(type val)\
{\
identifiant ## _ = val;\
return TRUE;\
}
Si j'utilise ces macros dans un cpp incluant Macro.h je me retrouve avec une erreur "error C2017: illegal escape sequence" lorsque j'appelle l'une des macros. Par exemple :
M_Atl_AttributIMPL(Atl_Torseur,RWCString,u) dans un cpp génère cette erreur.
Voyez vous une solution?
A voir également:
- Illegal escape sequence avec macro C++
- Illégal - Guide
- Site de telechargement illegal - Accueil - Outils
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Iptv illégal - Accueil - Streaming
- IPTV illégal : après les pirates, la justice condamne maintenant les clients… jusqu'à la prison ! - Guide
1 réponse
Salutations,
#define M_Atl_Attribut(inouttype,attrname)\ \
Pourquoi un double \ ?
Cela voudrait dire que le pré-compilateur doit effectivement insérer un caractère \, ce qui fait que la macro n'est pas continuée à la ligne suivante mais est seulement remplacée par un \ qui ne compile pas par le compilateur C.
M.
#define M_Atl_Attribut(inouttype,attrname)\ \
Pourquoi un double \ ?
Cela voudrait dire que le pré-compilateur doit effectivement insérer un caractère \, ce qui fait que la macro n'est pas continuée à la ligne suivante mais est seulement remplacée par un \ qui ne compile pas par le compilateur C.
M.
Par contre tu me fais remarquer qu'il y a dans mon message initial un faute de frappe.
Je n'ai bien qu'un "\" sur la ligne du #define
Tu avais raison, il y avait bien un "\" planqué après le premier.
En effet ce second "\" était positionné après une énorme série d'espace (plusieurs centaines) qui mettais le slash pour le coup hors du champ de vision.
Le copier coller sur le forum à tout simplement virer ces espaces inutils!!
Merci de ton aide.
L'erreur était en effet évidante, encore fallait-il savoir où chercher non regarder ;)