在标准 C++ 中,main
函数可以有异常规范吗?
例如,以下是否合法?
int main() noexcept {}
是的,这完全是合法的。C++ 标准(在[basic.start.main]、[except.spec]或其他地方)中没有禁止这样做的措辞。
即使在 C++17 及更高版本中,异常规范是函数类型的一部分,main
也仅根据[basic.start.main#2]限制其链接和返回类型:
实现不应预定义
main
功能。该功能不得重载。它的类型应具有 C++ 语言链接,并且应具有声明的返回类型 typeint
,否则其类型是实现定义的。