Erreur du compilateur C3872
’char’ : ce caractère n’est pas autorisé dans un identificateur
Le compilateur C++ suit la norme C++11 sur les caractères autorisés dans un identificateur. Seules certaines plages de caractères et certains noms de caractères universels sont autorisés dans un identificateur. Des restrictions supplémentaires s’appliquent au premier caractère d’un identificateur. Pour plus d’informations et une liste des caractères et des plages de noms de caractère universel autorisés, consultez Identifiers.
La plage de caractères autorisés dans un identificateur est moins restrictive lors de la compilation de code C++/CLI. Les identificateurs contenus dans du code compilé à l’aide de /clr doivent suivre la norme ECMA-335 : Common Language Infrastructure (CLI).
L’exemple suivant génère l’erreur C3872 :
// C3872.cpp
int main() {
int abc_\u0040; // C3872, U+0040 is in base char set
int abc_\u3001; // C3872, U+3001 is not in allowed range
int \u30A2_abc_\u3042; // OK, UCNs in allowed range
}