class-name:
identifier
template-id
class-specifier:
class-head{
member-specification![]()
}
class-head:
class-key identifierbase-clause
![]()
class-key nested-name-specifier identifier base-clause![]()
class-key:
class
struct
union
member-specification:
member-declaration member-specification![]()
access-specifier:
member-specification![]()
member-declaration:
decl-specifier-seqmember-declarator-list
![]()
;
function-definition ;![]()
qualified-id;
using-declaration
template-declaration
member-declarator-list:
member-declarator
member-declarator-list,
member-declarator
member-declarator:
declarator pure-specifier![]()
declarator constant-initializer![]()
identifier![]()
:
constant-expression
pure-specifier:
= 0
constant-initializer:
= constant-expression