如预期的那样,在C++11中以下代码会失败,因为该语言不支持常规函数的返回类型推导:
auto main()
{
return 0;
}
然而,C++14可以做到,因此我无法解释以下错误(在GCC trunk、clang 3.8和Visual Studio 2015中具有相同的结果):
error: 'main' must return 'int'
在标准中是否有我没有看到的条款,禁止对main
使用返回类型推导?还是两个编译器都不符合标准?(说实话,我从不这样做。int main()
最好了...)
return
语句返回不同类型(int、double等)的数据,该怎么办? - Muhammad Alimain()
在这方面可能不例外。顺便说一句,这个问题似乎是Will automatic return type deduction work for main?的确切重复,而不仅仅是相关的。 - iammilindmain
函数的返回类型是否会被推断出来...而另一个问题则从答案应该是“是”的前提开始,问为什么各种编译器给出的结果与该答案相矛盾。它们有漏洞,还是有其他因素在起作用?不幸的是,这个前提是错误的,因为我错误地使用了过时的草案,所以这一切都有点无意义。 - Lightness Races in Orbit