main関数は特別扱いの続き

最近のC++では、main関数の再帰呼び出しが禁止されていると聞いたので試してみた。

int main() { main(); }

コンパイルして実行できちゃうよ、Visual Studio Community 2017。

GCCでも試してみた。

→ main関数は再帰で呼べます。

 

~/source/c++>cat tmp.cpp
int main() {
main();
}

~/source/c++>g++ –version
g++ (GCC) 7.2.1 20170829 (Red Hat 7.2.1-1)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

~/source/c++>g++ -std=c++17 -Wall tmp.cpp
~/source/c++>