main()有异常规范吗?

时间:2017-05-10 07:21:43

标签: c++ c++11 main exception-specification

在标准C ++中,main函数是否有异常规范?

例如,以下是否合法?

int main() noexcept {}

1 个答案:

答案 0 :(得分:4)

是的,这完全合法。 C ++标准中没有措辞(在[basic.start.main][except.spec]或其他地方)禁止这样做。

即使在C ++ 17及更高版本中,异常规范也是函数类型的一部分,main仅根据[basic.start.main#2]限制其链接和返回类型:

  

实现不应预定义main函数。此功能不应过载。它的类型应具有C ++语言链接,并且它应具有类型为int的声明返回类型,否则其类型是实现定义的。