swap&& ADL

ADL:当编译器对无限定域的函数调用进行名字查找时,除了当前名字空间域以外,也会把函数参数类型所处的名字空间加入查找的范围

no_throw 因为雷内特化,操作都是内置类型,更具体的在 item 25

template <typename T>
inline void swap(classname<T>& a, calssname<T>& b)
{
   return  a.swap(b);//调用类内的成员函数 
}
//在类内 特化swap
void swap(classname & p)//成员函数
{
    using std::swap;
    classname& temp = member_data;
    classname& temp1 = p.member_data;
    swap(temp,temp1);
}

猜你喜欢

转载自blog.csdn.net/qq_24328911/article/details/51207191