Lo standard afferma esplicitamente che main
ha due firme valide (vale a dire garantite per funzionare); vale a dire:Gli argomenti della firma di main in C++ hanno i qualificatori unsiged e const?
int main();
int main(int, char*[]);
La mia domanda è semplice, sarebbe qualcosa di simile al seguente essere legale?
int main(const unsigned int, const char* const* argv);
miei test dicono 'sì', ma io sono sicuro della risposta, perché sono io che non sovraccaricare main
cambiando int
a unsigned int
così come il non alto livello const
-ness di argv? Se lo sono, allora è chiaramente proibito.
Quindi, queste modifiche sono garantite per funzionare su un compilatore conforme agli standard?
perché vorresti fare qualcosa del genere? Basta scrivere il codice conforme allo standard – Glen
Glen, io _want_ per scrivere un codice conforme. Ecco perché ho fatto questa domanda in primo luogo. – bh9042
Quindi dichiara 'int main (int, char **)' e sii sulla buona strada. –