摘要: 銘記在心
l 在對你的類型使用 std::swap 時可能會造成效率低下時,可以提供一個 swap 成員函數。確保你的 swap 不要拋出異常。
l 如果你提供了一個 swap 的成員函數,那么同時要提供一個非成員函數 swap 來調用這一成員。對于類而言(而不是模板),還要提供一個 std::swap 的特化版本來調用 swap 成員函數。
l 在調用 swap 時,要為 std::swap 使用一條 using 聲明,然后在調用 swap 時,不要做出名字空間的限制。
l 對用戶自定義類型而言,提供 std 的完全特化版本不成問題,但是決不要嘗試在 std 中添加全新的內容。
閱讀全文