Почему стандартный C ++ определяет Deck-специфический-seq необязательноC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему стандартный C ++ определяет Deck-специфический-seq необязательно

Сообщение Anonymous »

Почему в стандартной грамматике C ++, Deck-specifier-seq под простым декларацией является необязательным? < /p>

Код: Выделить всё

simple-declaration:
decl-specifier-seq(optional)  init-declarator-list(optional);
< /code>

Согласно спецификации, только функции преобразования конструктора, деструктора и типа не могли бы иметь Deck-repecifier-seq < /code> (раздел 9.2 или раздел 7 dcl.dcl.dcl ) Но все эти 3 объявления функций являются членами класса, поэтому они должны определяться другим правилом грамматики, отделенного от простого декорации < /code>: < /p>

member-declaration:
decl-specifier-seq(optional) member-declarator-list(optional);
function-definition ;(optional)
::(optional) nested-name-specifier template(optional) unqualified-id ;
using-declaration
static_assert-declaration
template-declaration
< /code>

Здесь Deck-specifier-seq < /code> является необязательным, как и ожидалось.  Но почему в простом декларации 
это тоже необязательно?

Подробнее здесь: https://stackoverflow.com/questions/236 ... q-optional
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»