#include <iostream>
class B1
{
public:
B1(void) {}
~B1(void){}
virtual void who() {
std::cout << "B1" << std::endl;
}
};
class B2
{
public:
B2(void) {}
~B2(void){}
virtual void who() {
std::cout << "B2" << std::endl;
}
};
class Derived: public B1, B2
{
public:
Derived(void) {}
~Derived(void){}
template<typename Base>
void who() {
Base::who();
}
};
int main(void) {
Derived d;
d.who<B1>();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQjEKewpwdWJsaWM6CiAgQjEodm9pZCkge30KICB+QjEodm9pZCl7fQoKICB2aXJ0dWFsIHZvaWQgd2hvKCkgewogICAgc3RkOjpjb3V0IDw8ICJCMSIgPDwgc3RkOjplbmRsOwogIH0KfTsKCmNsYXNzIEIyCnsKcHVibGljOgogIEIyKHZvaWQpIHt9CiAgfkIyKHZvaWQpe30KCiAgdmlydHVhbCB2b2lkIHdobygpIHsKICAgIHN0ZDo6Y291dCA8PCAiQjIiIDw8IHN0ZDo6ZW5kbDsKICB9Cn07CgpjbGFzcyBEZXJpdmVkOiBwdWJsaWMgQjEsIEIyCnsKcHVibGljOgogIERlcml2ZWQodm9pZCkge30KICB+RGVyaXZlZCh2b2lkKXt9CiAgCiAgdGVtcGxhdGU8dHlwZW5hbWUgQmFzZT4KICB2b2lkIHdobygpIHsKICAgICAgQmFzZTo6d2hvKCk7CiAgfQogfTsKCgppbnQgbWFpbih2b2lkKSB7CiAgICAgICAgRGVyaXZlZCBkOwoKICAgICAgICBkLndobzxCMT4oKTsKfQ==