You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++20及以后标准中浮点操作是否保证不抛出常规异常?

C++20及更高版本中浮点数操作的noexcept保证

针对你提出的三个double类型操作的noexcept判断,在定义行为的前提下,C++20及更高版本标准给出如下明确保证:

  • noexcept(a = b):结果为true。内置浮点数的赋值操作属于标准规定的非抛出操作,不会触发常规C++异常。
  • noexcept(a == b):结果为true。所有内置浮点数比较运算符(==、!=、<、>等)均被标准保证不会抛出常规C++异常。
  • noexcept(a + b):结果为true。包括加法在内的所有内置浮点数算术运算(如-、*、/等),在定义行为的场景下,绝不会抛出常规C++异常。

需要特别说明:这里仅针对常规C++异常,硬件层面的浮点异常(如除零触发的信号)不属于C++标准异常范畴,不在本次讨论的判断范围内。

内容的提问来源于stack exchange,提问作者Kristian Spangsege

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:03:10