Почему параметр gcc «-Wstrict-prototypes» недействителен для C ++?

Вот предупреждение, которое я и многие люди в Интернете см. при запуске gcc на Код C ++:

cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++

Текст предупреждения очень четкий: «C ++» отсутствует в наборе [Ada / C / ObjC], поэтому у меня нет никаких вопросов о том, почему gcc выдает это предупреждение при компиляции кода C ++. (FYI the причина, по которой мы имеем Этот флаг включен, несмотря на наличие кода C ++, потому что это в основном код C, мы выбрали строгий (высокий уровень) список параметров предупреждений, но мы добавили немного кода C ++.

Мой вопрос: Почему это предупреждение не подходит для C ++?

Документация gcc для параметра предупреждения, из http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Warning-Options.html , это:

-Wstrict-prototypes (только C и Objective-C) Предупредить, если функция объявлена ​​или определена без указания типов аргументов. (An определение функции в старом стиле разрешено без предупреждения, если предшествует объявление, в котором указываются типы аргументов.)

Теперь я просто знаю Я забываю кое-что очевидное о C ++, но разве C ++ не требует также указания типов аргументов для функций в прототипе? Верно ли, что эти прототипы функций часто находятся в объявлениях классов, потому что функции часто являются функциями-членами, но, тем не менее, прототипы не требуются? Или даже если это просто хорошая практика, то почему бы gcc не предложить поддержку по этой опции? Или, если нет, параллельным вариантом для C ++?

6
задан templatetypedef 14 July 2011 в 21:29
поделиться