This summary of C++ grammar is intended to be an aid to comprehension.
It is not an exact statement of the language.
In particular, the grammar described here accepts
a superset of valid C++ constructs.
Further, access control, ambiguity, and type rules must be used
to weed out syntactically valid but meaningless constructs.