2009-10-19 11 views
5

Czy "@" jest używane w C++? W tym yacc file jest wymieniony jako token. I jestem pewien, że nie mogę użyć @ jako części nazwy zmiennej. Czy @ jest używany w C++? i jak mogę go użyć?Czy "@" jest używane w C++?

+0

Jest wymieniony jako token, ale w rzeczywistości nie jest używany nigdzie w tej gramatyce. –

Odpowiedz

8

Nie, nie jest używany w C++. Nie pojawia się nigdzie w standardzie. W szczególności nie pojawia się w zestawie legalnych znaków C++ [lex.charset].

+1

Niektóre kompilatory używają '@' jednak w nazwach identyfikatorów po wykręcaniu nazw. Zobacz na przykład http://en.wikipedia.org/wiki/Name_mangling#How_different_compilers_mangle_the_same_functions. – Joey

+2

@Johannes: prawda, ale jest to ściśle nieistotne dla składni C++, a więc dla specyfikacji leksykalnej. W pliku 'yacc' obecność symbolu' @ 'jest błędem. Ponadto symbol nie jest używany nigdzie indziej w pliku 'yacc'. –

+1

Znak źródłowy nie musi znajdować się w zestawie znaków źródłowych _basic_ (dlatego "@" niekoniecznie musi być dozwolone), ale musi być traktowany tak, jakby wyglądał jak uniwersalna ucieczka znaków u \ uXXXX. Tak więc nie-podstawowe znaki źródłowe nie mogą pojawiać się w żadnym identyfikatorze lub tokenie językowym, ale mogą pojawiać się w literach znaków i ciągów znaków. –

1

Jak wspomniano powyżej, "@" nie jest częścią standardowego C++; pojawia się jednak w Objective-C, a więc w Objective-C++, a więc w kodzie realnym, takim jak WebKit.

Powiązane problemy