У меня есть тип Base
, который в частном порядке унаследован от Derived
. Derived
не добавляет новых переменных-членов.Частное наследство и свод ADL
Теперь, как правильно написать своп для Derived
? Мы не можем предположить, Base
имеет элемент swap
, так что я думаю, что возможно:
class Derived : private Base {
public:
void swap(Derived& other) noexcept
{
using std::swap;
swap(static_cast<Base&>(*this), static_cast<Base&>(other));
}
};
правильно ли это работает?
Ах да, я ушел из ADL подкачки для 'Derived', потому что ISN напрямую связан с вопросом. Но спасибо за указание. –