:私はDerived
オブジェクト上のADLスワップを使用しようとすると使用ADLスワップ
#include <iostream>
#include <utility>
struct Base {
friend void swap(Base&, Base&)
{
std::cout << "base swap\n";
}
};
struct Derived : Base {};
int main()
{
Derived d1, d2;
using std::swap;
swap(d1, d2);
}
、Base
のためのスワップ機能が起動されません。代わりに、std::swap
が使用されます。 Derived
のための別のADLスワップを作成する必要がありますか?この状況のベストプラクティスは何ですか?