C++のswap関数

884 ワード

最も一般的なテンプレート交換関数モード:一時オブジェクトの作成、オブジェクトの割り当てオペレータの呼び出し
template <class T> void swap ( T& a, T& b )  
{  
    T c(a); 
    a=b; 
    b=c;  
}  

一時オブジェクト、1つのコピー構造、2回の値付け操作を構築する必要があります.
int型最適化
void swap(int & __restrict a, int & __restrict b)  
{  
a ^= b;  
b ^= a;  
a ^= b;  
} 

一時オブジェクト、異またはを構築する必要はありません.