Рассмотрим следующую программу:Программа с экстерном Децл спецификатора в определении класса
extern class A;
int main() {}
Является ли это хорошо образованные в соответствии с C Стандарт ++? Если он плохо сформирован, требуется диагностика? Я получаю разные результаты для разных компиляторов:
- лязг: Нет ошибок компилятора (только предупреждение): http://melpon.org/wandbox/permlink/lhb8XNU01IyVhMnc
- GCC: Ошибка компилятора: http://melpon.org/wandbox/permlink/mIH9qmNY4noI1sEc
- Visual C++: Нет ошибок компилятора (только предупреждение): http://webcompiler.cloudapp.net/
Поставщики обычно определяют предупреждения как диагностические. Бессмысленно классифицировать сообщения компилятора в сообщениях об ошибках и предупреждениях (или что-то еще, что может испустить компилятор) в отношении стандартного соответствия. –
Да, вы правы, с -pedantic-errors я получаю ошибки как для Clang, так и для GCC. – Supremum
Clang также предоставляет '-Weverything', тогда как GCC этого не делает. – Chnossos