init-declarator-list:
init-declarator
init-declarator-list,
init-declarator
init-declarator:
declarator initializer![]()
declarator:
direct-declarator
ptr-operator declarator
direct-declarator:
declarator-id
direct-declarator(
parameter-declaration-clause)
cv-qualifier-seqexception-specification
![]()
direct-declarator[
constant-expression![]()
]
(
declarator)
ptr-operator:
*
cv-qualifier-seq![]()
&
::nested-name-specifier
*
cv-qualifier-seq![]()
cv-qualifier-seq:
cv-qualifier cv-qualifier-seq![]()
cv-qualifier:
const
volatile
declarator-id:
::id-expression
::nested-name-specifier
type-name
type-id:
type-specifier-seq abstract-declarator![]()
type-specifier-seq:
type-specifier type-specifier-seq![]()
abstract-declarator:
ptr-operator abstract-declarator![]()
direct-abstract-declarator
direct-abstract-declarator:
direct-abstract-declarator![]()
(
parameter-declaration-clause)
cv-qualifier-seq![]()
exception-specification![]()
direct-abstract-declarator![]()
[
constant-expression![]()
]
(
abstract-declarator)
parameter-declaration-clause:
parameter-declaration-list![]()
...
![]()
parameter-declaration-list,
...
parameter-declaration-list:
parameter-declaration
parameter-declaration-list,
parameter-declaration
parameter-declaration:
decl-specifier-seq declarator
decl-specifier-seq declarator = assignment-expression
decl-specifier-seq abstract-declarator![]()
decl-specifier-seq abstract-declarator![]()
=
assignment-expression
function-definition:
decl-specifier-seqdeclarator ctor-initializer
function-body
decl-specifier-seqdeclarator function-try-block
function-body:
compound-statement
initializer:
=
initializer-clause
(
expression-list)
initializer-clause:
assignment-expression
{
initializer-list,
![]()
}
{
}
initializer-list:
initializer-clause
initializer-list,
initializer-clause