class Parent {
protected:
virtual int f() = 0;
int DelegateF(Parent& p) { return p.f(); }
};
class Child : public Parent {
using Parent::f;
protected:
int g(Parent& p) {
return DelegateF(p); // OK.
}
int g(Child& p) {
return DelegateF(p); // OK.
}
};
int main()
{
return 0;
}
Y2xhc3MgUGFyZW50IHsKIHByb3RlY3RlZDoKICB2aXJ0dWFsIGludCBmKCkgPSAwOwogIGludCBEZWxlZ2F0ZUYoUGFyZW50JiBwKSB7IHJldHVybiBwLmYoKTsgfQp9OwoKY2xhc3MgQ2hpbGQgOiBwdWJsaWMgUGFyZW50IHsKIHVzaW5nIFBhcmVudDo6ZjsKIHByb3RlY3RlZDoKICBpbnQgZyhQYXJlbnQmIHApIHsKICAgIHJldHVybiBEZWxlZ2F0ZUYocCk7IC8vIE9LLgogIH0KICBpbnQgZyhDaGlsZCYgcCkgewogICAgcmV0dXJuIERlbGVnYXRlRihwKTsgLy8gT0suCiAgfQp9OwoKaW50IG1haW4oKQp7CiAgICByZXR1cm4gMDsKfQ==