第四部分(4)(条款25:考虑写出一个不抛出异常的swap函数)
来源:互联网 发布:大树网络 怎么样 编辑:程序博客网 时间:2024/04/29 23:04
条款25:考虑写出一个不抛出异常的swap函数
所谓swap两个对象,就是将两个对象的值彼此赋予对方。标准库可能是这样实现的:
namespace std{
}
只要类型T支持copying(copy constructor and copy assignment)就可以了。
“以指针指向一个对象,内含真正的数据”这种表现形式就是“pimpl手法”,以 Widget class 为例:
class WidgetImpl{
};
class Widget{
};
}
然而假设两个类都是template呢:
在Widget内部的swap函数不变,但是特化会变为:
namespace std{
}
现在我们达到了预期的效果。但是我们希望的是在使用的时候调用T的专属版本,并在该版本不存在的情况下调用std内的版本:
template<typename T>
void doSomething(T& obj1,T&obj2)
{
}
这里需要注意错误的调用方式: std::swap(obj1,obj2);这会影响sdt选择函数。
- 第四部分(4)(条款25:考虑写出一个不抛出异常的swap函数)
- 条款25:考虑写出一个不抛出异常的swap函数
- Effective c++(第三版) 条款25:考虑写出一个不抛出异常的swap函数
- 《Effective C ++ 》资源管理:条款25--考虑写出一个不抛出异常的swap函数
- 《Effect C++》学习------条款25:考虑写出一个不抛出异常的swap函数
- [effectiv c++]条款25:考虑写出一个不抛出异常的swap函数
- 考虑写出一个不抛出异常的swap函数
- 考虑写出一个不抛出异常的swap函数
- 条款25:考虑写一个不抛出异常的swap函数
- Effective C++——》条款25:考虑写一个不抛出异常的swap函数
- 条款25:考虑写一个不抛出异常的swap函数
- 25考虑写出一个不抛出异常的swap函数——effective c++学习笔记
- C++之考虑写出一个不抛出异常的swap函数(25)---《Effective C++》
- 条款25:考虑写出一个不抛异常的swap函数
- 条款25:考虑写出一个不抛异常的swap函数
- 条款25:考虑写出一个不抛异常的swap函数
- 《Effective C++》学习笔记条款25 考虑写出一个不抛异常的swap函数
- 条款25:考虑写出一个不抛异常的swap函数
- 通过匿名管道实现进程间通信
- 第四部分(3)(条款24:若所有参数皆需要数据转型,请为此采用non-member函数)
- POJ 1637 混合图欧拉回路的判定
- 用HTML5创建超酷图像灰度渐变效果
- flex的错误码列表
- 第四部分(4)(条款25:考虑写出一个不抛出异常的swap函数)
- EXTJS 中 anchor 的用法
- 烤对虾
- 常用的验证
- sqlite 数据类型 全面
- C# NotifyIcon 鼠标左键弹出托盘菜单的两个方法
- android4.0 源码编译出错的一些解决办法
- 诺基亚(Nokia)E7-00联通定制版移动上网的方法(暴力推荐)
- C# JsonHelper