C++ syntax uses almost all printable ASCII characters and some of them in several contexts. Only two unused are @ and $ characters. Why they are not used? Are they reserved for some "meta" purpose?
It is implementation defined (so you should avoid using them if you care about portability).
Some compilers (e.g. GCC) accept
$ in identifiers.
BTW, the backquote ` is also unused in C++.
Notice that early definition of C or C++ languages did not require (and where not used) on systems using ASCII. This explains why some ASCII characters remain unused. (Some systems used EBCDIC and had a C compiler).
Be aware of UTF-8 (perhaps some compilers accept it as an extension...)