R.17.3 Описания

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 ( строка-литерал ) ;