Возможная проблема с [dcl.fct.def.general]/1 в стандарте C

#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 .