Почему стандартный 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

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