Sì, _
è un identificatore valido, poiché soddisfa i requisiti di sintassi. Fondamentalmente, un identificatore è costituito da un trattino basso o una lettera, seguito da zero o più caratteri che possono essere caratteri di sottolineatura, lettere o cifre. (A partire da C++ 2011, gli identificatori possono anche contenere nomi di caratteri universali e altri caratteri definiti dall'implementazione, ma ciò non è pertinente alla tua domanda.)
Ma probabilmente non è uno che dovresti usare nel tuo codice, a meno che tu non sia " stai molto attento.
Come this answer dice, citando lo standard C++ 2003:
Ogni nome che inizia con un carattere di sottolineatura è riservata alla implementazione per l'uso come un nome nel namespace globale.
La variabile _
non è nel namespace globale, così sei sicuro in questo caso, ma è una buona idea per evitare di definire eventuali identificatori che iniziano con un carattere di sottolineatura.
Inoltre, credo che GNU gettext (che fornisce supporto per i messaggi localizzati) utilizza il nome _
per i propri scopi. (È stata probabilmente una cattiva idea per GNU gettext fare a questo, ma è stata una scelta conveniente.)
fonte
2013-09-05 22:53:54
È possibile dedurre da quella citazione che la risposta è "sì", ma sarebbe bello dirlo. –