首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算noexcept()运算符的结果

如何计算noexcept()运算符的结果
EN

Stack Overflow用户
提问于 2015-11-30 02:43:15
回答 2查看 70关注 0票数 1

例如,

代码语言:javascript
复制
template<class T,size_t N>
void swap(T (&a)[N], T (&b)[N]) noexcept(noexcept(swap(*a,*b)));

在什么情况下,函数可以或不能抛出异常?

EN

回答 2

Stack Overflow用户

发布于 2015-11-30 02:58:02

代码语言:javascript
复制
noexcept(noexcept(swap(*a,*b)))

外层是noexcept specifier,内层是noexcept operator

如果T%s的swapnoexcept,则为noexcept

它只能在交换可以抛出的情况下才能抛出。

票数 2
EN

Stack Overflow用户

发布于 2015-11-30 03:00:25

快速解释:

如果函数swap(T&, T&)被标记为noexcept,则内部noexcept返回true

如果内部noexcept返回true,则外部noexcept将此函数标记为noexcept

因此,此函数复制swap(T&, T&)noexcept语义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33986541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档