Trong khi thực hành một số C++, tôi đã cố gắng tìm hiểu và chấp nhận thành ngữ sao chép-hoán đổi sau lời giải thích kỹ lưỡng này về câu hỏi này: the Copy-Swap Idiom.những gì hiện `bằng cách sử dụng std :: swap` bên trong cơ thể của một phương pháp thực hiện phương pháp lớp có nghĩa là gì?
Nhưng tôi tìm thấy một số mã tôi chưa từng thấy: using std::swap; // allow ADL
trong ví dụ này
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
}
};
- gì
using std::swap;
nghĩa bên trong cơ thể của một hàm thực hiện? - ADL là gì?
[Câu trả lời của MSalter] (http://stackoverflow.com/a/4782809/464581) là IMHO rõ ràng là câu trả lời toàn diện hơn, vì ông giải thích về ADL (đó là toàn bộ lý do để thực hiện 'sử dụng' tại đây) . Tôi nghĩ bạn nên chọn giải pháp đó. –