添加“noexcept(false)”对代码有什么好处吗?

2024-06-28

最近在我的代码中我明确地写了noexcept(false)我知道的函数确实会抛出异常,主要是对于阅读代码的人来说。但是,我想知道这是否会影响我的代码的行为或编译器解释它的方式。有什么区别吗?

注意:我知道析构函数隐式为 noexcept 并且您必须指定noexcept(false)为了改变这一点,我想知道其他功能。


没有异常说明符并明确说明noexcept(false)是等价的,参见§15.4/12:

没有异常规范或具有以下形式的异常规范的函数noexcept(constant-expression)其中常量表达式产生false允许所有例外。

因此编译器在考虑异常时不应该区分它们。


更重要的是,你没必要再去纠缠noexcept(false)到你的职能。作为一名 C++ 开发人员,您应该假设每个函数默认都会抛出异常(这就是标准采取这种立场的原因),因此您不会通过写出新信息来添加新信息;这对每个人来说都是浪费时间。

相反,请标记函数的特殊情况确实不抛出noexcept,并标记函数的情况may根据某些条件抛出noexcept(condition).

如果您的函数故意成为某些异常的来源E,将其写入您的文档中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加“noexcept(false)”对代码有什么好处吗? 的相关文章

  • 如何管理 JSONP 响应中的 ' ?

    我需要像这样管理 char 在我的 JSONP 请求中 通过 jquery 使用 Ajax 所以 来自 C 这就是我所做的 myText Hello I m a string myText Replace Response Write Re
  • 格式化具有 X 位小数和 InvariantCulture 的数字?

    我想使用格式化数字ToString CultureInfo InvariantCulture 并且精确到小数点后 5 位 这可以使用ToString N5 我怎样才能同时做这两件事 怎么样使用重载既需要格式又需要文化 http msdn m
  • 在 OpenCV C++ 中使用 gpu::GpuMat

    我想知道如何修改gpu GpuMat 事实上我想知道是否可以使用gpu GpuMat like a cv Mat 我想做这样的事情 cv namedWindow Result cv Mat src host cv imread lena j
  • 如何从 appsettings.json 获取日期时间?

    我有 net core 5 0 应用程序并尝试从 appsettings json 获取 DateTime 应用程序设置 json TimeModel RestartDuration 27 10 2021 12 30 00 Code ser
  • 浮点指令异常——FLDZ故障?

    I am trying to debug the problem I posted earlier here C and pin tool very weird DOUBLE variable issue with IF statement
  • 将数据路径数据到树状数据结构

    我有以下数据 root root blue root blue temp root main root main dev root main back root etc init root etc init dev root etc ini
  • 为什么 C# 三元运算符不能与委托一起使用?

    当分支选择函数时 使用三元运算符来选择函数可能是有意义的 但这是不可能的 为什么 public class Demo protected bool branch protected void demo1 protected void dem
  • 泛型类中可空的泛型字段

    我正在尝试做这样的事情 public class MySuperCoolClass
  • Microsoft.Graph GetAsync() 无限期挂起

    介绍 我正在开发一个 ASP NET 应用程序 除其他外 它应该从 Azure Active Directory 检索用户 为此 我使用 Microsoft Graph 版本 1 14 0 预览库 可以找到该库here https www
  • 为什么 _popen 在这里可以工作,而 boost::process 却不能?

    我在 Windows 上使用 popen 有以下工作代码 m pGNUPlot popen gnuplot bin gnuplot exe w fprintf m pGNUPlot set term win n fprintf m pGNU
  • 将 wav 文件存储在数组中

    我需要一种快速方法来将 wav 文件的所有样本存储在数组中 我目前正在通过播放音乐并存储来自示例提供程序的值来解决这个问题 但这不是很优雅 从 NAudio 演示中 我有带有此方法的 Audioplayer 类 private ISampl
  • 如何从源代码编译picoProlog?

    我是计算机科学专业的学生 正在学习 Prolog 逻辑编程 我发现了一个有趣的 Prolog 解释器 picoProlog http spivey oriel ox ac uk corner Logic Programming http s
  • 双击 C# 中的 Windows 窗体

    如何检测哪个鼠标按钮双击了表单 即左键 右键或中键 Updated 我使用的是 NET2 0 将最后点击的按钮存储在MouseUp事件 然后在双击事件中检查该事件 示例代码 MouseButtons lastButtonUp MouseBu
  • 将 HTML 渲染为图像

    我正在基于动态输入和裁剪图像生成优惠券 并且现在使用 ntml 和 css 显示优惠券 问题是 打印这已成为一个问题 因为打印时背景如何消失以及其他问题 所以我认为最好的解决方案是能够基于html生成图像 或者设置某种接受字符串和图像的模板
  • Sharepoint 客户端 GetFolderByServerRelativeUrl 文件夹修改日期

    我试图在使用 GetFolderByServerRelativeUrl 函数时检索文件夹的 修改日期 和 创建日期 我该怎么做 我只能从中获取relativeUrl 和文件夹名称 下面是我为检索文件夹所做的操作 请帮忙 FolderColl
  • C:分段错误:GDB:<读取变量时出错>

    我有一个函数shortestPath 它是Dijkstra算法的修改实现 用于我正在为comp2类开发的棋盘游戏AI 我浏览了网站并使用 gdb 和 valgrind 我确切地知道段错误发生的位置 实际上几个小时前就知道了 但无法弄清楚是什
  • 如何使用 gcc 的 -I 命令添加递归文件夹

    有没有办法使用 gcc 的 I 命令并通过给出 a 将所有路径添加到搜索路径root目录 我正在尝试使用 gcc E myfile c查看宏展开式 但是myfile c包含不同目录中的一大堆其他头文件 并且因为我在 vim 中执行此命令 所
  • 跨 Web 服务列表<国家/地区> 变为国家/地区 []

    我有一个 Web 服务 调用时会返回一个包含多态列表的 Result 对象 但是 当我在客户端应用程序中添加引用时 公共字段将成为客户端应用程序中的国家 地区数组 如何将客户端应用程序中的字段更改为列表 public Result GetC
  • 从构造函数调用虚函数[重复]

    这个问题在这里已经有答案了 我正在阅读有效的C https en wikipedia org wiki Scott Meyers 还有 第 9 条 在构造或销毁期间切勿调用虚函数 我想知道我的代码是否正确 即使它违反了这条规则 using
  • 如何将特殊字符 (0x80..0x9F) 写入 Windows 控制台?

    我想要这段代码 System Console Out WriteLine il display il代替oil正如我的测试程序中所做的那样 The Console OutputEncoding默认设置为Western European DO

随机推荐

  • QML 缩放不适用于非整数缩放因子

    我正在使用 QML 编写一个应用程序 当我按非整数因子缩放 GUI 时遇到麻烦 根据文档 https doc qt io qt 5 highdpi html Qt AA EnableHighDpiScaling应该启用与设备无关的像素 因此
  • HTML5 全屏 Web 应用程序:没有浏览器栏

    我正在为移动设备创建 HTML5 Web 应用程序 并被要求隐藏浏览器导航栏 后退和前进按钮 前面这里有错字 我怎样才能做到这一点 我想我应该能够使用 Phone Gap 来实现这一目标 但我想知道 普通 网络应用程序是否有可能隐藏浏览器栏
  • gitignore 中的文件

    我在生产服务器中有一个带有 Rails 应用程序的存储库 在存储库中有 gitignore 文件 config database yaml 每个开发客户端都有一个具有不同 config database yaml 的克隆存储库 我的问题是这
  • 有谁知道有一个很好的库可以将一个人的名字映射到他或她的性别吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻找一个图书馆或数据库 可以根据一个人的名字或昵称猜测他或她是男性还是女性 就像是 john gt M mary gt F al
  • Spring Boot Rest API @RequestBody 中的 @Valid 与 @Validated [重复]

    这个问题在这里已经有答案了 我拥有开发 REST API 的 NET 背景 现在使用 spring boot 从事 java REST 项目 首先 我在控制器 RequestBody 上的验证停止工作 在尝试修复它时 我看到了不同的实施方法
  • TypeORM:将不相关的实体映射到数组属性中

    我有以下内容无关TypeORM 实体 由于各种原因 我不能在它们上使用一对多关系 Entity export class Book PrimaryGeneratedColumn id number Column name string En
  • 将 python 字节类型更改为字符串

    我正在使用 python 来使用 stackoverflow API 我运行以下命令 f urllib request urlopen http api stackoverflow com 1 0 stats d f read d 的类型是
  • Swift 中可选的闭包属性

    如何在 Swift 中将可选闭包声明为属性 我正在使用这段代码 var respondToButton sender UIButton gt Bool 但编译器抱怨该属性未在初始化程序结束时初始化 我相信我可以通过将 var 声明为可选来解
  • Cordova Ionic:启用 Android 表情符号软键盘

    使用 Cordova Ionic Android 您可以通过以下方式调用搜索键盘
  • 具有包含布局的数据绑定变量继承

    我正在学习数据绑定和 mvvm 我有一个问题 我想要一个BaseViewModel kt包含一些与 UI 相关的变量 例如isLoading旗帜和loadingText 当发出网络请求时 我设置isLoading为 true 并且我的基本视
  • 错误CS2001:找不到源文件“.cs”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 当我尝试构建时 我的项目出现以下错误 错误 CS2001 找不到源文件 cs 我故意取出导致此错误的两个文件 因为它们与
  • 是否可以在不使用探查器的情况下跟踪 C# 应用程序中的内存使用情况?

    我想编写一个简单的应用程序来跟踪其当前的内存使用情况 创建的对象数量等 在 C 中 我通常会覆盖 new 运算符 但由于显而易见的原因 我无法在 C 中执行此操作 有没有办法在不使用分析器的情况下做到这一点 您可能想从垃圾收集器开始 MSD
  • 如何在 MariaDB 或 MySQL 中创建文本类型的外键?

    我有两张桌子 CREATE TABLE first table my id TEXT 6 NOT NULL content VARCHAR 30 NOT NULL PRIMARY KEY my id 6 Engine InnoDB char
  • 如何:在 Python 中生成 40/64 位 WEP 密钥?

    所以 几个月来我一直在这个问题上绞尽脑汁 部分是因为这是我的副业 部分是因为我不擅长编程 我在整个网络上进行了搜索和研究 但没有任何运气 除了一点点成功 见下文 所以我想我可以尝试询问专家 正如标题所示 我想做的是根据 事实上的 标准从密码
  • List remove(Object object) 何时以及为何返回 false

    该方法何时以及为什么boolean java util List remove Object object 返回假 文档指出 该方法返回 true 如果此操作修改了此 List 否则为假 为什么操作在List上不生效 注意 我正在使用的列表
  • @WebAppConfiguration 未注入

    我正在尝试使用 Spring 3 2 1 创建 spring mvc 测试 经过一些教程后 我认为这会很简单 这是我的测试 RunWith SpringJUnit4ClassRunner class ContextConfiguration
  • Android 上的位图大小超出 VM 预算错误

    我正在将 Asset 文件夹中的 100 张图像加载到数组对象中 图片非常小 每张 png 20k 我使用此代码对其进行处理 并防止内存泄漏和优化性能 循环中 create resized bitmap from asset resourc
  • AngularJS 指令在元素完全加载之前运行

    我有一个附加到动态生成的指令 table 模板内的元素 该指令在 a 中操作该表的 DOMlink功能 问题是该指令在渲染表之前运行 通过评估ng repeat指令 那么表是空的 Question 如何确保该指令在表格完全呈现后运行 tab
  • Bash - 在文件名中间添加 0

    我有一堆文件 其名称为 mem0 csv内存1 csv mem153 csv 它们都在同一个文件夹中 当我在文件夹中执行 ls 时 它们按以下顺序显示 mem0 csv内存1 csvmem10 csvmem100 csv 内存2 csvme
  • 添加“noexcept(false)”对代码有什么好处吗?

    最近在我的代码中我明确地写了noexcept false 我知道的函数确实会抛出异常 主要是对于阅读代码的人来说 但是 我想知道这是否会影响我的代码的行为或编译器解释它的方式 有什么区别吗 注意 我知道析构函数隐式为 noexcept 并且