这篇文章主要讲解了“C++怎么提供一个不会抛出异常的交换函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++怎么提供一个不会抛出异常的交换函数”吧!
对于值类类型,考虑提供一个不会抛出异常的交换函数
移动功能可以在实现很多常规操作时提供便利。从顺畅地移动对象到更容易地实现赋值,以至提供有保证的提交函数,这个函数可以为不会失败的调用代码提供强有力的支持。
Example, good(示例)
class Foo {
public:
void swap(Foo& rhs) noexcept
{
m1.swap(rhs.m1);
std::swap(m2, rhs.m2);
}
private:
Bar m1;
int m2;
};
为了调用者的方便,在和目标类型同一个命名空间中提供一个非成员的swap函数。
void swap(Foo& a, Foo& b)
{
a.swap(b);
}
(Simple) A class without virtual functions should have a swap member function declared.
(简单)不包含虚函数的类就应该定义一个swap函数。
(Simple) When a class has a swap member function, it should be declared noexcept.
(简单)如果一个类包含一个swap成员函数,这个函数应该被声明为noexcept。
感谢各位的阅读,以上就是“C++怎么提供一个不会抛出异常的交换函数”的内容了,经过本文的学习后,相信大家对C++怎么提供一个不会抛出异常的交换函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。