1

在标准 C++ 中,main函数可以有异常规范吗?

例如,以下是否合法?

int main() noexcept {}
4

1 回答 1

4

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

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

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

于 2017-05-10T07:21:42.840 回答