Возьмите следующий код:
int main()
{
decltype(main()) x = 0;
return x;
}
gcc жалуется:
main.cpp: In function 'int main()':
main.cpp:8:19: warning: ISO C++ forbids taking address of function '::main' [-Wpedantic]
decltype(main()) x = 0;
^
main.cpp:8:19: warning: ISO C++ forbids taking address of function '::main' [-Wpedantic]
но не clang. Так что насчет decltype(main())
вызывает эту ошибку? Как decltype
берет адрес основного?