Wird '@' in C++ verwendet? In diesem yacc file ist es als ein Token aufgeführt. Und ich bin sicher, dass ich @ nicht als Teil eines Variablennamens verwenden kann. Wird @ in C++ verwendet? und wie könnte ich es benutzen?Wird '@' in C++ verwendet?
Antwort
Nein, es wird nicht in C++ verwendet. Es erscheint nirgendwo im Standard. Insbesondere erscheint es nicht in der Menge der zulässigen C++ - Zeichen [lex.charset].
Einige Compiler verwenden '@' jedoch für Bezeichnernamen nach Namensmangel. Siehe http://en.wikipedia.org/wiki/Name_mgling#How_different_compilers_mangle_the_same_functions zum Beispiel. – Joey
@Johannes: wahr, aber das ist für die C++ - Syntax und damit für eine Lexer-Spezifikation absolut irrelevant. In der 'yacc' Datei ist das Vorhandensein des' @ 'Symbols ein Fehler. Außerdem wird das Symbol nirgendwo anders in der 'yacc'-Datei verwendet. –
Ein Quellzeichen muss nicht im Quellcode-Satz _basic_ sein (also ist '@' nicht unbedingt nicht erlaubt), aber es muss so behandelt werden, als ob es als \ uXXXX-Universalzeichen-Escape aufgetreten wäre. Nicht-grundlegende Quellzeichen können also nicht in Bezeichnern oder Sprachtokens vorkommen, aber sie könnten in Zeichen- und String-Literalen vorkommen. –
Wie die oben genannten Antworten erwähnt, ist '@' nicht Teil Standard C++; Es erscheint jedoch in Objective-C und daher in Objective-C++ und damit in realem Code wie WebKit.
Es ist als ein Token aufgeführt, aber es wird nicht wirklich irgendwo in dieser Grammatik verwendet. –