在对这个问题的彻底解释之后,我试图学习和采用复制交换成语: Copy-Swap Idiom。
但我发现了一些我从未见过的代码:using std::swap; // allow ADL
在这个例子中
class dumb_array
{
public:
// ...
void swap(dumb_array& pOther) // nothrow
{
using std::swap; // allow ADL /* <===== THE LINE I DONT UNDERSTAND */
swap(mSize, pOther.mSize); // with the internal members swapped,
swap(mArray, pOther.mArray); // *this and pOther are effectively swapped
}
};
using std::swap;
函数实现的主体内部是什么意思?- ADL 是什么意思?