Quoting XML syntax for names:
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [
NameChar ::= NameStartChar | "-" | "." | [0-9] |
I see the following differences from C ++ names: Leading _ can be reserved in C ++, depending on what follows; the colon, periods, and minus signs are valid in XML names. Unicode characters can also cause some sorrow in C ++, but they are mostly implementation dependent.
[# x0300- # x036F] ( ), .
, , - . <:/" > , XML. . - , - . , foo[1], &foo, *foo, foo=0 foo,bar. : {using namespace name;}. foo::bar, OK - foo:: bar XML.