Справочное руководство по C++ — страница 31 из 41

 логическое-выражение-ИЛИ

 логическое-выражение-ИЛИ ? выражение : выражение-условия

логическое-выражение-ИЛИ:

 логическое-выражение-И

 логическое-выражение-ИЛИ || логическое-выражение-И

логическое-выражение-И:

 выражение-ИЛИ

 логическое-выражение-И && выражение-ИЛИ

выражение-ИЛИ:

 выражение-исключающего-ИЛИ

 выражение-ИЛИ | выражение-исключающего-ИЛИ

выражение-исключающего-ИЛИ:

 выражение-И

 выражение-исключающего-ИЛИ ^ выражение-И

выражение-И:

 выражение-равенства

 выражение-И & выражение-равенства

выражение-равенства:

 выражение-отношения

 выражение-равенства == выражение-отношения

 выражение-равенства != выражение-отношения

выражение-отношения:

 сдвиговое-выражение

 выражение-отношения ‹ сдвиговое-выражение

 выражение-отношения › сдвиговое-выражение

 выражение-отношения ‹= сдвиговое-выражение

 выражение-отношения ›= сдвиговое-выражение

сдвиговое-выражение:

 аддитивное-выражение

 сдвиговое-выражение ‹‹ аддитивное выражение

 сдвиговое-выражение ›› аддитивное выражение

аддитивное-выражение:

 мультипликативное-выражение

 аддитивное выражение + мультипликативное-выражение

 аддитивное-выражение - мультипликативное-выражение

мультипликативное-выражение:

 выражение-pm

 мультипликативное-выражение * выражение-pm

 мультипликативное-выражение / выражение-pm

 мультипликативное-выражение % выражение-pm

выражение-pm:

 выражение-приведения

 выражение-pm .* выражение-приведения

 выражение-pm -›* выражение-приведения

выражение-приведения:

 унарное-выражение

 ( имя-типа ) выражение-приведения

унарное-выражение:

 постфиксное-выражение

 ++ унарное выражение

 -- унарное выражение

 унарная-операция выражение-приведения

 sizeof унарная-операция

 sizeof ( имя-типа )

 выражение-размещения

 выражение-освобождения

унарная-операция: один из

 * & + - ! ~

 выражение-размещения:

 :: 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 идентификатор