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