В C ++ 03 приведенные ранее ответы верны: они незаконны. Однако в C ++ 11 ситуация изменилась:
Ответ здесь «Может быть» :
Согласно §2.11 идентификаторы могут состоять из цифр и идентификаторов-нецифров , начиная с одного из последних. идентификатор-нецифры являются обычными a-z
, A-Z
и подчеркиванием, кроме того, начиная с C ++ 11 они включают универсальные имена-символы (например, \uBEAF
, \UC0FFEE32
), и другие определяемые реализацией символы . Таким образом, реализация определяется, если разрешено использование $
в идентификаторе. VC10 и выше поддерживает это, возможно, и более ранние версии. Он даже поддерживает идентификаторы, такие как こんばんは
.
Но: Я бы их не использовал. Сделайте идентификаторы максимально читабельными и переносимыми. $
определяется реализацией и поэтому не является переносимым.