declarator

declarator Provides information about a single identifier in a declaration

declarator ::= direct-declarator | ptr-operator declarator

init-declarator-list ::= init-declarator | init-declarator-list , init-declarator

init-declarator ::= declarator [initializer]

initializer ::= = initializer-clause | ( expr-list )

initializer-clause ::= assignment-expr | { initializer-list [,] } | { }

initializer-list ::= initializer-clause | initializer-list , initializer-clause

direct-declarator ::= declarator-id | 

    direct-declarator ( parm-decl-clause ) [cv-qualifier-seq] [exception-specification] |

    direct-declarator [ [constant-expr] ] | ( declarator )

ptr-operator ::= * [cv-qualifier-seq] | & | [::] nested-name :: * [cv-qualifier-seq]

declarator-id ::= id-expression | [::] [nested-name ::] type-name

abstract-declarator ::= ptr-operator [abstract-declarator] | direct-abstract-declarator

direct-abstract-declarator ::= [direct-abstract-declarator] ( parm-decl-clause ) 

    [cv-qualifier-seq] [exception-specification] | 

    [direct-abstract-declarator] [ [constant-expr] ] | ( abstract-declarator )

parm-decl-clause ::= [parm-decl-list] [...] | parm-decl-list , ...

parm-decl-list ::= parm-decl | parm-decl-list , parm-decl

parm-decl ::= decl-specifier-seq declarator [= assignment-expr] | 

    decl-specifier-seq [abstract-declarator] [= assignment-expr]

exception-specification ::= throw ( [type-id-list] )

type-id-list ::= type-id | type-id-list , type-id

A declarator provides additional information about a single identifier in a declaration. The declarator can be part of an object declaration, a class member declaration, a typedef declaration, a parameter in a function declaration, and so on.

See Also

declaration, expression, function, identifier, type, Chapter 2