设为首页 加入收藏

TOP

Item 14: 如果函数不会抛出异常就把它们声明为noexcept(三)
2017-10-12 10:55:41 】 浏览:8851
Tags:Item 14: 如果 函数 不会 异常 它们 声明 noexcept
except。这看起来很矛盾,但是有可能setup和cleanup在说明文档中说了它们永远不会抛出异常。就算它们没有在说明文档中说明,我们 还是有多理由来解释他们的声明式为什么是non-noexcept。举个例子,它们可能是用C写的。(也可能是从C标准库移动到std命名空间但缺少异常规范的函数,比如,std::strlen没有声明为noexcept)或者它们可能是C++98标准库的一部分,没有使用C++98的异常规范,并且到目前为止还没有被修改成C++11的版本。

因为这里有很多合适的理由来解释为什么noexcept函数可以调用缺乏noexcept保证的函数,所以C++允许这样的代码,并且编译器通常不会对此发出警告。

            你要记住的事
  • noexcept是函数接口的一部分,并且调用者可能会依赖这个接口。
  • 比起non-noexcept函数,noexcept函数可以更好地被优化。
  • noexcept对于move操作,swap,内存释放函数和析构函数是特别有价值的,
  • 大部分函数是异常中立的而不是noexcept。
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Item 14: 如果函数不会抛出异常就.. 下一篇【数据结构】并查集

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目