这可能是一个微不足道的问题,但我不知道(无法找到)它的答案。请考虑以下C ++ 14代码:
auto main()
{
return 0;
}
在我看来,这段代码应该完全有效。返回类型应在声明int
中按类型推导为auto main()
。然而,g ++(4.9.2)和clang ++(600.0.54)都抱怨它,吐出来
error: 'main' must return 'int' (g++)
或
error: cannot initialize return object of type 'auto' with an rvalue
of type 'int' (clang++)
出现这种情况的原因是什么?从一致性的角度来看,上面的代码应该成功编译,imho。