有効な C++main
署名は次のとおりです。
int main()
int main(int argc, char *argv[])
int main(int argc, char **argv)
main
ただし、初期化子リストを取ることを宣言することは許可されていません:
int main(std::initializer_list<char *> args)
私の知る限り、イニシャライザリストは、ポインタのペアまたはポインタ(これはargv
パラメータである可能性があります)と長さ(これはパラメータから推測される可能性があります)として実装できargc
、そのストレージは自動、一時、または静的な読み取り専用メモリである可能性があります場合によります。
したがってstd::initializer_list<char *>
、コマンドラインパラメーターを問題なく処理および管理できると思いmain
ますが、C++ 11標準の初期化子リストの承認後にこの架空の署名が追加されなかったのはなぜだろうかと思っています。尋ねています:
- イニシャライザリストを
main
唯一のパラメータとして許可することで生じる欠点や問題は何ですか? (私は何も考えられませんでした)。 - この追加 (またはその他の変更) を標準化委員会に提案する正しい方法はどれですか?