#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