#include <iostream>
using namespace std;
struct Base {
void foo(int);
};
struct Derived : Base {
using Base::foo;
void foo() { cout << "Derived::foo()\n"; }
};
void Derived::foo(int) {
cout << "Derived::foo(int)\n";
}
int main() {
Base b;
b.foo(2);
Derived d;
d.foo(2);
d.foo();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEJhc2UgewogIHZvaWQgZm9vKGludCk7Cn07CgpzdHJ1Y3QgRGVyaXZlZCA6IEJhc2UgeyAKICB1c2luZyBCYXNlOjpmb287CiAgdm9pZCBmb28oKSB7IGNvdXQgPDwgIkRlcml2ZWQ6OmZvbygpXG4iOyB9Cn07Cgp2b2lkIERlcml2ZWQ6OmZvbyhpbnQpIHsKICBjb3V0IDw8ICJEZXJpdmVkOjpmb28oaW50KVxuIjsJCn0KCmludCBtYWluKCkgewogIEJhc2UgYjsKICBiLmZvbygyKTsKICBEZXJpdmVkIGQ7CiAgZC5mb28oMik7CiAgZC5mb28oKTsKICByZXR1cm4gMDsKfQo=