Punctuators in C++ have syntactic and semantic meaning to the compiler, but do not, of themselves, specify an operation that yields a value. Some punctuators, either alone or in combination, can also be C++ operators or be significant to the preprocessor.
punctuator: one of
! % ^ & * ( ) - + = { } | ~
[ ] \ ; ' : " < > ? , . / #
The punctuators [ ], ( ), and { } must appear in pairs after translation phase 4. (For more information, see Appendix A, “Phases of Translation.”)