条款25:考虑写出一个不抛异常的swap函数
来源:互联网 发布:网络推广工资一般多少 编辑:程序博客网 时间:2024/05/01 15:51
一、杂项
1.通常我们不能够(不被允许)改变std命名空间内的任何东西,但可以(被允许)为标准templates(如swap)制造特化版本。
2.koening lookup法则
namespace myspace{
class a {};
class b {};
template<typename T>
func(T & t1, T & t2);
}
在使用时,如果实参是同一命名空间时,可以不指定函数的命名空间。如:
myspace::a a1;
myspace::b b1;
func(a1, b1); //可以不指定函数的命名空间
二、总结
1.当std::swap对你的类型效率不高时,提供一个swap成员函数,并确定这个函数不抛出异常。(因为swap得一个最好的应用时帮助classes和class templates提供强烈的异常安全性保障,但此技术基于一个假设:成员版的swap绝不跑出异常)。
2.如果你提供一个member swap,也该提供一个non-member swap用来调用前者。对于classes(而非templates),也请特化std::swap。
3.条用swap时应针对std::swap使用using声明式,然后调用swap并且不带任何“命名空间资格修饰”。
4.为“用户自定义类型”进行std templates全特化是好的,但千万不要尝试在std内加入对std而言全新的东西。
- 条款25:考虑写出一个不抛异常的swap函数
- 条款25:考虑写出一个不抛异常的swap函数
- 条款25:考虑写出一个不抛异常的swap函数
- 《Effective C++》学习笔记条款25 考虑写出一个不抛异常的swap函数
- 条款25:考虑写出一个不抛异常的swap函数
- 条款25:考虑写出一个不抛异常的swap函数
- Effective C++:条款25:考虑写出一个不抛异常的swap函数
- 条款25 考虑写出一个不抛异常的swap函数
- 条款25 考虑写出一个不抛异常的swap函数
- 读书笔记《Effective C++》条款25:考虑写出一个不抛异常的swap函数
- Effective C++ 条款25:考虑写出一个不抛异常的swap函数
- 《Effective C++》条款25:考虑写出一个不抛异常的swap函数
- 第四部分(4)(条款25:考虑写出一个不抛出异常的swap函数)
- 条款25:考虑写出一个不抛出异常的swap函数
- Effective c++(第三版) 条款25:考虑写出一个不抛出异常的swap函数
- 《Effective C ++ 》资源管理:条款25--考虑写出一个不抛出异常的swap函数
- 《Effect C++》学习------条款25:考虑写出一个不抛出异常的swap函数
- [effectiv c++]条款25:考虑写出一个不抛出异常的swap函数
- 递归妙用
- 链表的反转
- 如何发布VSTO应用程序?资料收集
- 关于asp.net导出Excel时关联迅雷下载
- 在哪里找到通信网络管理论文?
- 条款25:考虑写出一个不抛异常的swap函数
- 反病毒研究相关网络资源
- WSDL学习笔记(一)
- 介绍3款软件序列号搜索引擎
- 设计模式学习笔记3——设计模式基础2--抽象类
- GNU Free Documentation License
- error LNK2005:
- 初识Ophone
- 从一个笑话看软件开发管理(转)