struct A {
protected:
void test() {}
int a;
};
struct B : A {
using A::test;
using A::a;
};
int main()
{
A a;
a.*(&B::a);
(a.*(&B::test))();
return 0;
}
c3RydWN0IEEgewpwcm90ZWN0ZWQ6Cgl2b2lkIHRlc3QoKSB7fQoJaW50IGE7Cn07CgpzdHJ1Y3QgQiA6IEEgewoJdXNpbmcgQTo6dGVzdDsKCXVzaW5nIEE6OmE7Cn07CgppbnQgbWFpbigpCnsKCUEgYTsKCWEuKigmQjo6YSk7CgkoYS4qKCZCOjp0ZXN0KSkoKTsKCQoJcmV0dXJuIDA7Cn0K