gpt4 book ai didi

c++ - C++ 标准是否要求 C 链接函数为 `noexcept` ?

转载 作者:IT老高 更新时间:2023-10-28 21:35:40 28 4
gpt4 key购买 nike

我在标准中找不到任何强制使用 extern "C" 声明的函数为 noexcept 的内容,无论是隐式还是显式。

然而,应该清楚的是,C 调用约定不能支持异常......或者是吗?

标准是否在我错过的地方提到了这一点?如果不是,为什么不呢?它只是作为某种实现细节留下来吗?

最佳答案

据我所知,不能保证使用“C”链接定义的函数不会引发异常。该标准允许 C++ 程序调用具有“C”语言链接的外部函数,并定义用 C++ 编写的具有“C”语言链接的函数。因此,没有什么可以阻止 C++ 程序调用具有“C”语言链接的函数,该函数实际上是用 C++ 编写的(可能在另一个编译单元中,尽管这不是必需的)。这将是一件奇怪的事情,但很难排除。此外,我没有看到标准中的哪个地方说这样做会导致未定义的行为(事实上,由于标准无法定义不是用 C++ 编写的函数的行为,这将是 only 用法没有正式未定义的行为)。

因此,我认为假设“C”链接意味着 noexcept 是错误的。

关于c++ - C++ 标准是否要求 C 链接函数为 `noexcept` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362616/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com