#include <iostream>
#include <functional>
class Parent {
protected:
void foo() {
std::cout << "Parent::foo()\n";
}
};
class Child : public Parent
{
public:
//void foo() { Parent::foo(); } //This compiles
using Parent::foo; //This does NOT compile
};
int main() {
Child c;
c.foo();
std::function < void () > f = std::bind(&Child::foo, &c);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmNsYXNzIFBhcmVudCB7CnByb3RlY3RlZDoKICAgIHZvaWQgZm9vKCkgewogICAgICAgIHN0ZDo6Y291dCA8PCAiUGFyZW50Ojpmb28oKVxuIjsKICAgIH0KfTsKCmNsYXNzIENoaWxkIDogcHVibGljIFBhcmVudAp7CnB1YmxpYzoKICAgIC8vdm9pZCBmb28oKSB7IFBhcmVudDo6Zm9vKCk7IH0gLy9UaGlzIGNvbXBpbGVzCiAgICB1c2luZyBQYXJlbnQ6OmZvbzsgLy9UaGlzIGRvZXMgTk9UIGNvbXBpbGUKfTsKaW50IG1haW4oKSB7CiAgICBDaGlsZCBjOwogICAgYy5mb28oKTsKCiAgICBzdGQ6OmZ1bmN0aW9uIDwgdm9pZCAoKSA+IGYgPSBzdGQ6OmJpbmQoJkNoaWxkOjpmb28sICZjKTsKICAgIHJldHVybiAwOwp9