next up previous
suivant: Classes monter: Grammaire de C++ précédent: Declarations

Declarators


init-declarator-list:  

init-declarator
init-declarator-list , init-declarator

init-declarator:
declarator initializer$_{\mathsf{opt}}$

declarator:
direct-declarator
ptr-operator declarator

direct-declarator:
declarator-id
direct-declarator ( parameter-declaration-clause ) cv-qualifier-seq$_{\mathsf{opt}}$ exception-specification$_{\mathsf{opt}}$
direct-declarator [ constant-expression$_{\mathsf{opt}}$ ]
( declarator )

ptr-operator:
* cv-qualifier-seq$_{\mathsf{opt}}$
&
::$_{\mathsf{opt}}$ nested-name-specifier * cv-qualifier-seq$_{\mathsf{opt}}$

cv-qualifier-seq:
cv-qualifier cv-qualifier-seq$_{\mathsf{opt}}$

cv-qualifier:
const
volatile

declarator-id:
::$_{\mathsf{opt}}$ id-expression
::$_{\mathsf{opt}}$ nested-name-specifier$_{\mathsf{opt}}$ type-name

type-id:
type-specifier-seq abstract-declarator$_{\mathsf{opt}}$

type-specifier-seq:
type-specifier type-specifier-seq$_{\mathsf{opt}}$

abstract-declarator:
ptr-operator abstract-declarator$_{\mathsf{opt}}$
direct-abstract-declarator

direct-abstract-declarator:
direct-abstract-declarator$_{\mathsf{opt}}$ ( parameter-declaration-clause ) cv-qualifier-seq$_{\mathsf{opt}}$

exception-specification$_{\mathsf{opt}}$
direct-abstract-declarator$_{\mathsf{opt}}$ [ constant-expression$_{\mathsf{opt}}$ ]
( abstract-declarator )

parameter-declaration-clause:
parameter-declaration-list$_{\mathsf{opt}}$ ...$_{\mathsf{opt}}$
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$_{\mathsf{opt}}$
decl-specifier-seq abstract-declarator$_{\mathsf{opt}}$ = assignment-expression

function-definition:
decl-specifier-seq$_{\mathsf{opt}}$ declarator ctor-initializer$_{\mathsf{opt}}$ function-body
decl-specifier-seq$_{\mathsf{opt}}$ declarator function-try-block

function-body:
compound-statement

initializer:
= initializer-clause
( expression-list )

initializer-clause:
assignment-expression
{ initializer-list ,$_{\mathsf{opt}}$ }
{ }

initializer-list:
initializer-clause
initializer-list , initializer-clause


next up previous
suivant: Classes monter: Grammaire de C++ précédent: Declarations
R Lalement
1999-09-16