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);
}