摘要: 铭记在心
l 在对你的类型使用 std::swap 时可能会造成效率低下时,可以提供一个 swap 成员函数。确保你的 swap 不要抛出异常。
l 如果你提供了一个 swap 的成员函数,那么同时要提供一个非成员函数 swap 来调用这一成员。对于类而言(而不是模板),还要提供一个 std::swap 的特化版本来调用 swap 成员函数。
l 在调用 swap 时,要为 std::swap 使用一条 using 声明,然后在调用 swap 时,不要做出名字空间的限制。
l 对用户自定义类型而言,提供 std 的完全特化版本不成问题,但是决不要尝试在 std 中添加全新的内容。
阅读全文