#include <iostream>
#include <string>
using namespace std;
struct A {
int f() { return 42; }
};
struct B : A {
using A::f; // <- This is the magic line!
int f(int n) { return 42 + n; }
};
int main() {
B b;
cout << b.f() << endl;
cout << b.f(100) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgewogICAgaW50IGYoKSB7IHJldHVybiA0MjsgfQp9OwoKc3RydWN0IEIgOiBBIHsKICAgIHVzaW5nIEE6OmY7IC8vIDwtIFRoaXMgaXMgdGhlIG1hZ2ljIGxpbmUhCiAgICBpbnQgZihpbnQgbikgeyByZXR1cm4gNDIgKyBuOyB9Cn07CgppbnQgbWFpbigpIHsKCUIgYjsKCWNvdXQgPDwgYi5mKCkgPDwgZW5kbDsKCWNvdXQgPDwgYi5mKDEwMCkgPDwgZW5kbDsKCXJldHVybiAwOwp9