Const-квалификация основных параметров в C ++ - PullRequest
10 голосов
/ 14 июня 2010

Стандарт C ++ требует, чтобы все соответствующие реализации поддерживали следующие две сигнатуры для main:

  • int main();
  • int main(int, char*[]);

В случае последней подписи, будет ли добавление (верхнего уровня) const -ness нарушать какие-либо языковые правила?

Например:

int main(const int argc, char** const argv);

Насколько я понимаю, квалификация верхнего уровня const не влияет на хэш сигнатуры функции, поэтому она должна быть законной, насколько это касается спецификации.

Кроме того, кто-нибудь когда-либо сталкивался с реализацией, которая отклонила этот тип модификации?

1 Ответ

5 голосов
/ 14 июня 2010

Это известная проблема в стандарте.Также см. это обсуждение usenet по теме.

...