#include<iostream>
class abc
{
int x;
virtual void t();
};
template <int unique> struct interm : /*virtual*/ abc
{
virtual void t();
virtual void s();
};
struct xyz :
/*virtual*/ interm<1>,
/*virtual*/ interm<2>,
/*virtual*/ interm<3>,
/*virtual*/ interm<4>,
/*virtual*/ interm<5>,
/*virtual*/ interm<6>,
/*virtual*/ interm<7>,
/*virtual*/ interm<8>
{
int b;
virtual void t();
virtual void s();
};
int main()
{
std::cout << sizeof(abc) << std::endl;
std::cout << sizeof(interm<1>) << std::endl;
std::cout << sizeof(xyz) << std::endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CgpjbGFzcyBhYmMKewogICAgaW50IHg7CiAgICB2aXJ0dWFsIHZvaWQgdCgpOwp9OwoKdGVtcGxhdGUgPGludCB1bmlxdWU+IHN0cnVjdCBpbnRlcm0gOiAvKnZpcnR1YWwqLyBhYmMgCnsKICAgIHZpcnR1YWwgdm9pZCB0KCk7CiAgICB2aXJ0dWFsIHZvaWQgcygpOwp9OwoKc3RydWN0IHh5eiA6IAogICAgLyp2aXJ0dWFsKi8gaW50ZXJtPDE+LCAKICAgIC8qdmlydHVhbCovIGludGVybTwyPiwgCiAgICAvKnZpcnR1YWwqLyBpbnRlcm08Mz4sIAogICAgLyp2aXJ0dWFsKi8gaW50ZXJtPDQ+LAogICAgLyp2aXJ0dWFsKi8gaW50ZXJtPDU+LCAKICAgIC8qdmlydHVhbCovIGludGVybTw2PiwgCiAgICAvKnZpcnR1YWwqLyBpbnRlcm08Nz4sIAogICAgLyp2aXJ0dWFsKi8gaW50ZXJtPDg+CnsKICAgIGludCBiOwogICAgdmlydHVhbCB2b2lkIHQoKTsKICAgIHZpcnR1YWwgdm9pZCBzKCk7Cn07CgoKaW50IG1haW4oKQp7CiAgICBzdGQ6OmNvdXQgPDwgc2l6ZW9mKGFiYykgICAgICAgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8IHNpemVvZihpbnRlcm08MT4pIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCBzaXplb2YoeHl6KSAgICAgICA8PCBzdGQ6OmVuZGw7CiAgICByZXR1cm4gMDsKfQo=