C++11中noexcept运算符怎么使用

本篇内容主要讲解“C++11中noexcept运算符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11中noexcept运算符怎么使用”吧!

异常符说明的实参

前一篇文章没有提到,实际上noexcept说明符是可以接受一个bool类型的参数的。

C++11中noexcept运算符怎么使用

实参为true则说明该函数不会抛出异常,反之则说明该函数可能抛出异常。这种方式在处理是否抛出异常不一定的情况下很有用,例如以下模板函数:

C++11中noexcept运算符怎么使用

在fun中,如果T的类型为简单数据(例如int)则赋值语句不会抛出异常;如果T的类型为一个类(例如string),赋值语句就可能抛出异常。代码中使用is_pod来判断数据是否为POD(Plain Old Data type)来决定fun是否为noexcept。示例代码如下:

C++11中noexcept运算符怎么使用

输出结果如下:

C++11中noexcept运算符怎么使用

noexcept运算符

C++11还另外提供了noexcept运算符,用于确认一个处理是否会抛出异常。例如下面的代码:

C++11中noexcept运算符怎么使用

fun2是否会抛出异常,决定于fun是否会抛出异常。代码首先通过noexcept运算符来计算fun(a,b)是否抛出异常,计算结果是一个布尔值,正好作为noexcept说明符的参数。示例代码如下:

C++11中noexcept运算符怎么使用

输出结果如下:

C++11中noexcept运算符怎么使用

到此,相信大家对“C++11中noexcept运算符怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!