条款25:考虑写出一个不抛异常的swap函数

  1. c++只允许对类模板偏特化,不允许对函数模板偏特化。
  2. std是一个特殊的命名空间,它允许全特化任何templete,但是不允许添加任何templete。
  3. tips
    • 关于pimpl类:提供一个member swap,并提供一个non-member swap来调用前者,最后特化std::swap()
    • 关于pimpl模板类:创建一个包括类定义的namespace,并在此命名空间之中构建non-member swap。
    • 关于调用,针对std::swap使用using声明式,然后调用swap并且不带任何“命名空间修饰符”。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容