我有这个非常简单的代码:
constexpr int main()
{
return 0;
}
我从 C++11 标准 N3485 了解到这是非法的:
函数 main 不得在程序中使用。main 的链接(3.5)是实现定义的。 将 main 定义为已删除或将 main 声明为 inline、static 或constexpr 的程序是错误的。 名称 main 没有保留。
当我使用 gcc 4.7.2 运行它时。它输出以下错误:
prog.cpp:1:20: error: cannot declare ‘::main’ to be inline
同时,如果我return 0
从函数体中删除 ,它会报告相同的错误,甚至不会给出关于缺少 return 语句 from 的警告main
。
这是 gcc 4.7.2 的错误吗?为什么constexpr
被报告为inline
?第二种现象是否意味着不放入return语句main
是可以的,还是默认情况下return 0
即使我没有放入return语句(我知道这是不好的做法)?
谢谢你。