2009-10-19 13 views
5

¿Se usa '@' en C++? En este yacc file aparece como un token. Y estoy seguro de que no puedo usar @ como parte de un nombre de variable. ¿Se usa @ en C++? y ¿cómo podría usarlo?¿Se usa '@' en C++?

+0

Está listado como un token pero en realidad no se usa en ninguna parte de esa gramática. –

Respuesta

8

No, no se usa en C++. No aparece en ninguna parte del estándar. En particular, no aparece en el conjunto de caracteres legales de C++ [lex.charset].

+1

Algunos compiladores usan '@' para los nombres de los identificadores después del cambio de nombre. Ver http://en.wikipedia.org/wiki/Name_mangling#How_different_compilers_mangle_the_same_functions por ejemplo. – Joey

+2

@Johannes: verdadero, pero esto es estrictamente irrelevante para la sintaxis de C++ y, por lo tanto, para una especificación de lexer. En el archivo 'yacc', la presencia del símbolo' @ 'es un error. Además, el símbolo no se usa en ningún otro lugar en el archivo 'yacc'. –

+1

Un carácter de origen no tiene que estar en el juego de caracteres _basic_ source (por lo que '@' no necesariamente no está permitido), pero se debe manejar como si apareciera como un escape de carácter universal \ uXXXX. Por lo tanto, los caracteres de origen no básicos no pueden aparecer en ningún identificador o token de idioma, pero podrían aparecer en caracteres y literales de cadena. –

1

Como se menciona en las respuestas anteriores, '@' no es parte estándar de C++; sin embargo, sí aparece en Objective-C, y por lo tanto en Objective-C++, y por lo tanto, en código del mundo real, como WebKit.