:: opt new параметры-new opt имя-типа-new инициализатор-new
:: opt new параметры-new opt ( имя-типа ) инициализатор-new
параметры-new:
( список-выражений )
имя-типа-new:
список-спецификаций-типа описатель-new opt
описатель-new:
* список-спецификаций-cv opt описатель-new opt
имя-класса :: список-спецификаций-cv opt описатель-new opt
описатель-new opt [ выражение ]
инициализатор-new:
( список-инициализаторов opt )
выражение-освобождения:
:: opt delete выражение-приведения
:: opt delete [ ] выражение-приведения
постфиксное-выражение:
первичное-выражение
постфиксное-выражение [ выражение ]
постфиксное-выражение ( список-выражений opt )
имя-простого-типа ( список-выражений opt )
постфиксное-выражение . имя
постфиксное-выражение -› имя
постфиксное-выражение ++
постфиксное-выражение --
список-выражений:
выражение-присваивания
список-выражений , выражение-присваивания
первичное-выражение:
литерал
this
:: идентификатор
:: имя-функции-операции
:: уточненное-имя
( выражение )
имя
имя:
идентификатор
имя-функции-операции
имя-функции-преобразования
~имя-класса
уточненное-имя
уточненное-имя:
уточняющее-имя-класса :: имя
литерал:
целая константа
символьная константа
константа с плавающей точкой
строка литералов
R.17.3 Описания
описания:
спецификации-описания opt список-описателей opt;
описание-asm
определение-функции
спецификация-связи
спецификация-описания:
спецификация-класса-памяти
спецификация-типа
спецификация-fct
спецификация-шаблона-типа
friend
typedef
спецификации-описания:
спецификации-описания opt спецификация-описания
спецификация-класса-памяти:
auto
register
static
extern
спецификация-fct:
inline
virtual
спецификация-типа:
имя-простого-типа
спецификация-класса
спецификация-перечисления
спецификация-сложного-типа
:: имя-класса
const
volatile
имя-простого-типа:
полное-имя-класса
уточненное-имя-типа
char
short
int
long
signed
unsigned
float
double
void
спецификация-сложного-типа:
служебное-слово-класса имя-класса
служебное-слово-класса идентификатор
служебное-слово-класса:
class
struct
union
уточненное-имя-типа:
имя-typedef
имя-класса :: уточненное-имя-типа
полное-имя-класса:
уточненное-имя-класса
:: уточненное-имя-класса
уточненное-имя-класса:
имя-класса
имя-класса :: уточненное-имя-класса
имя-перечисления:
идентификатор
спецификация-перечисления:
enum идентификатор opt { список-перечисления }
список-перечисления:
элемент-перечисления
список-перечисления , элемент-перечисления
элемент-перечисления:
идентификатор
идентификатор = выражение-константа
спецификация-связи:
extern строка-литерал { список-описаний opt }
extern строка-литерал описание
список-описаний:
описание
список-описаний описание
описание-asm:
asm ( строка-литерал ) ;
R.17.4 Описатели
список-описаний:
описатель-с-инициализатором
список-описаний , описатель-с-инициализатором
описатель-с-инициализатором:
описатель инициализатор opt
описатель:
имя-в-описателе
операция-ptr описатель
описатель ( список-описаний-параметров ) список-спецификаций-cv opt
описатель [ выражение-константа opt ]
( описатель )
операция-ptr:
* список-спецификаций-cv opt
& список-спецификаций-cv opt
полное-имя-класса :: * список-спецификаций-cv opt
список-спецификаций-cv:
const
volatile
имя-в-описателе:
имя
имя-класса
~имя-класса
имя-typedef
уточненное-имя-типа
имя-типа:
список-спецификаций-типа абстрактный-описатель opt
список-спецификаций-типа:
спецификация-типа список-спецификаций-типа
абстрактный-описатель:
операция-ptr абстрактный-описатель opt
абстрактный-описатель opt ( список-описаний-параметров ) список-спецификаций_cv opt
абстрактный-описатель opt [ выражение-константа opt ]
( абстрактный-описатель )
список-описаний-параметров:
список-описаний-парам opt … opt