我应该只对构造函数和移动运算符写 noexcept 吗?

问题描述

关于 noexcept用法有相当(非常)popular question,但它来自 8 年前,其他流行的答案也同样古老。看到其他人在不同项目中的一些代码,在我看来,noexcept 并没有成为许多开发人员编写的非常普遍的东西。

除了移动构造函数和移动赋值运算符之外,使用 noexcept 的好处似乎还不够清楚,无法为每个函数考虑(“我是否应该在此处添加 noexcept?”)。

有人发现了这个说明符的一个很好的用法,可以分享他们的经验吗?

解决方法

除了您链接的问题中的答案(今天仍然具有相关性)之外,C++ Core Guidelines 中还列出了许多您可能想要查看的特定案例:

正如 Discussion: Usage of noexcept 部分中持续缺乏内容(截至 2021 年 3 月)所指出的那样,这不是一个容易总结的主题。