2009-10-19 9 views
5

Est-ce que '@' est utilisé en C++? Dans ce yacc file il est répertorié comme un jeton. Et je suis sûr que je ne peux pas utiliser @ dans le cadre d'un nom de variable. Est-ce que @ est utilisé en C++? et comment pourrais-je l'utiliser?Est-ce que '@' est utilisé en C++?

+0

Il est répertorié comme un jeton mais il n'est réellement utilisé nulle part dans cette grammaire. –

Répondre

8

Non, il n'est pas utilisé en C++. Il n'apparaît nulle part dans la norme. En particulier, il n'apparaît pas dans l'ensemble des caractères C++ légaux [lex.charset].

+1

Certains compilateurs utilisent '@' pour les noms d'identifiants après le changement de nom. Voir http://en.wikipedia.org/wiki/Name_mangling#How_different_compilers_mangle_the_same_functions par exemple. – Joey

+2

@Johannes: vrai mais ceci est strictement non pertinent pour la syntaxe C++ et donc pour une spécification lexer. Dans le fichier 'yacc', la présence du symbole' @ 'est une erreur. De plus, le symbole n'est utilisé nulle part ailleurs dans le fichier 'yacc'. –

+1

Un caractère source n'a pas besoin d'être dans le jeu de caractères source _basic_ (donc '@' n'est pas nécessairement interdit), mais il doit être traité comme s'il apparaissait comme un caractère universel \ uXXXX escape. Les caractères source non basiques ne peuvent donc apparaître dans aucun identificateur ou jeton de langue, mais ils peuvent apparaître dans les littéraux de caractère et de chaîne. –

1

Comme les réponses ci-dessus mentionnées, '@' ne fait pas partie de la norme C++; cependant, il apparaît dans Objective-C, et donc dans Objective-C++, et donc dans le code réel, tel que WebKit.

Questions connexes