2009-10-19 14 views
5

"@" è utilizzato in C++? In questo yacc file è elencato come un token. E sono sicuro che non posso usare @ come parte di un nome di variabile. @ È usato in C++? e come potrei usarlo?È '@' usato in C++?

+0

È elencato come token ma non è effettivamente utilizzato da nessuna parte in quella grammatica. –

risposta

8

No, non è utilizzato in C++. Non appare da nessuna parte nello standard. In particolare, non appare nel set di caratteri C++ legali [lex.charset].

+1

Alcuni compilatori usano '@' anche se per i nomi degli identificatori dopo il nome mangling. Vedi http://en.wikipedia.org/wiki/Name_mangling#How_different_compilers_mangle_the_same_functions per esempio. – Joey

+2

@Johannes: true ma questo è strettamente irrilevante per la sintassi C++ e quindi per una specifica lexer. Nel file 'yacc', la presenza del simbolo' @ 'è un errore. Inoltre, il simbolo non viene utilizzato da nessun'altra parte nel file 'yacc'. –

+1

Un carattere di origine non deve necessariamente essere nel set di caratteri di origine _basic_ (quindi non è necessariamente "@" non consentito), ma deve essere gestito come se fosse visualizzato come escape universale di carattere \ uXXXX. Quindi i caratteri di origine non di base non possono apparire in alcun identificatore o gettone di lingua, ma potrebbero apparire in caratteri e stringhe letterali. –

1

Come indicato sopra, '@' non è parte standard C++; tuttavia, appare in Objective-C, e quindi in Objective-C++ e, quindi, nel codice del mondo reale, come WebKit.

Problemi correlati