#c #language-lawyer
Вопрос:
[dcl.fct.def.общие положения]/1:
Определения функций имеют вид
функция-определение:
атрибут-спецификатор-seq opt
децл-спецификатор-seq opt декларатор вирт-спецификатор-seq opt функция-телофункция-тело:
ctor-инициализатор опт
составная функция-оператор
-попытка-блок
= default ;
= delete ;
Любая неофициальная ссылка на тело функции должна интерпретироваться как ссылка на нетерминальное тело функции. Необязательный спецификатор атрибутов-seq в определении функции относится к функции. Virtus-спецификатор-seq может быть частью определения функции, только если он является объявлением члена ([class.mem]).
Учитывая, что объявление функции является простым объявлением и что нетерминальный символ decl-спецификатор-seq в определении простого объявления не является необязательным, мне кажется, что примечание, подобное приведенному ниже, лучше прояснило бы ситуацию в последнем абзаце, приведенном выше:
«В объявлении, не являющемся участником, требуется дескриптор_сеек.»
Комментарии:
1. «Учитывая, что объявление функции является простым объявлением», как это связано с определением функции?
2. @cpplearner Ну, я не знаю ни одного определения функции для функции, не являющейся членом, у которой нет спецификатора defining_type в ее дескрипторе-спецификаторе-seq .