#include <iostream>
template <typename... Ts>
struct A { virtual void foo(Ts&&...) {} };
struct B : A<int, unsigned> {
void foo(int&& x, unsigned&& y) override { std::cout << "here"; }
};
int main() {
B b;
b.foo(1, 2u);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVHM+CnN0cnVjdCBBIHsgdmlydHVhbCB2b2lkIGZvbyhUcyYmLi4uKSB7fSB9OwoKc3RydWN0IEIgOiBBPGludCwgdW5zaWduZWQ+IHsKICAgIHZvaWQgZm9vKGludCYmIHgsIHVuc2lnbmVkJiYgeSkgb3ZlcnJpZGUgeyBzdGQ6OmNvdXQgPDwgImhlcmUiOyB9Cn07CgppbnQgbWFpbigpIHsKICAgIEIgYjsKICAgIGIuZm9vKDEsIDJ1KTsKfQ==