2015-07-21 1 views
2

Рассмотрим следующую программу:Программа с экстерном Децл спецификатора в определении класса

extern class A; 

int main() {} 

Является ли это хорошо образованные в соответствии с C Стандарт ++? Если он плохо сформирован, требуется диагностика? Я получаю разные результаты для разных компиляторов:

+1

Поставщики обычно определяют предупреждения как диагностические. Бессмысленно классифицировать сообщения компилятора в сообщениях об ошибках и предупреждениях (или что-то еще, что может испустить компилятор) в отношении стандартного соответствия. –

+0

Да, вы правы, с -pedantic-errors я получаю ошибки как для Clang, так и для GCC. – Supremum

+0

Clang также предоставляет '-Weverything', тогда как GCC этого не делает. – Chnossos

ответ

2

программа плохо формируется в соответствии с §7.1.1/1:

If a storage-class-specifier appears in a decl-specifier-seq, […] the init-declarator-list of the declaration shall not be empty (except for an anonymous union declared in a named namespace or in the global namespace, which shall be declared static (9.5)).

Смежные вопросы