【问题标题】:Functions turning noexcept in C++17?在 C++17 中变成 noexcept 的函数?
【发布时间】:2017-04-04 15:15:35
【问题描述】:

根据this answer,异常规范将成为C++17中函数类型的一部分。这是否意味着许多功能的异常规范也会发生变化,例如C 兼容性标头中的函数获得noexcept 规范? 在 C++17 中,哪些标准函数的异常规范将更改为 noexcept

编辑:显然P0488R0,2016 年 10 月 19 日国家机构对标准工作草案的评论,包括建议的更改以标记几个 C 兼容性功能noexcept(参见 US 172-178 )。我想我们将不得不等待 WG21 对此作出反应。

【问题讨论】:

  • 提案中说异常规范将成为函数类型的一部分,但没有改变标准库。
  • @Gonmator 如果像std::sqrt 这样的东西不会成为noexcept 作为类型系统变化的自然结果,这似乎很尴尬。
  • @jotik:“作为这种类型系统变化的自然结果。”为什么这是这种变化的“自然结果”?

标签: c++ language-lawyer c++17 noexcept exception-specification


【解决方案1】:

C++17 更改为 noexcept 允许函数指针具有 noexcept 类型。

C++17改成noexcept与标准库中标有noexcept的函数无关。

两者都不依赖于另一个。

我知道 C++17 中没有任何更改来标记 C 库 noexcept 中的每个函数。

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 2023-04-03
    • 2017-05-08
    • 2016-06-26
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    相关资源
    最近更新 更多