【发布时间】:2016-12-30 14:44:38
【问题描述】:
正如预期的那样,以下在 C++11 中失败了,因为该语言没有 bog 标准函数的返回类型推导:
auto main()
{
return 0;
}
但是,C++14 可以,所以我无法解释以下错误(在 GCC 主干、clang 3.8 和 Visual Studio 2015 中具有相同的结果):
error: 'main' must return 'int'
标准中是否有一段我没有看到,禁止main 的返回类型扣除?还是两个编译器都不兼容?
(对于它的价值,我永远不会真正这样做。int main() 为胜利......)
【问题讨论】:
-
我也能够在 Visual Studio 中重现这一点。
-
@Xirema:谢谢! 2015,我猜?
-
如果主函数中有多个
return语句返回不同类型(int、double 等)的数据怎么办? -
@iammilind:我不会与复制品作斗争,但这并不“准确”。对于初学者,运行一个差异:你会发现很多字符不同。更广泛地说,有人问
main的返回类型是否“将”在 C++14 中推导出来......而这个问题从答案应该是“是”的前提开始,询问为什么各种编译器都会给出结果与那个答案形成鲜明对比。他们有错误吗,还是有其他原因?不幸的是,前提是有缺陷的,因为我错误地使用了过时的草稿,所以这一切都没有实际意义。
标签: c++ c++14 return-type-deduction