#include <iostream>
struct base {};
template<typename Type>
struct left : base {
Type value;
};
template<typename Type>
struct right : base {
Type value;
};
struct padding {
char _padding_[32];
};
int main() {
std::cout << "sizeof padding = " << sizeof (padding) << std::endl;
std::cout << "sizeof left<padding> = " << sizeof (left<padding>) << std::endl;
std::cout << "sizeof right<padding> = " << sizeof (right<padding>) << std::endl;
std::cout << "sizeof left<right<padding>> = " << sizeof (left<right<padding>>) << std::endl;
std::cout << "sizeof right<left<padding>> = " << sizeof (right<left<padding>>) << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IGJhc2Uge307Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgpzdHJ1Y3QgbGVmdCA6IGJhc2UgewoKICAgVHlwZSB2YWx1ZTsKfTsKCnRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CnN0cnVjdCByaWdodCA6IGJhc2UgewoKICAgVHlwZSB2YWx1ZTsKfTsKCgpzdHJ1Y3QgcGFkZGluZyB7CiAgIGNoYXIgX3BhZGRpbmdfWzMyXTsKfTsKCgppbnQgbWFpbigpIHsKICAgc3RkOjpjb3V0IDw8ICJzaXplb2YgcGFkZGluZyAgICAgICAgICAgICAgPSAiIDw8IHNpemVvZiAocGFkZGluZykgICAgICAgICAgICAgIDw8IHN0ZDo6ZW5kbDsKICAgc3RkOjpjb3V0IDw8ICJzaXplb2YgbGVmdDxwYWRkaW5nPiAgICAgICAgPSAiIDw8IHNpemVvZiAobGVmdDxwYWRkaW5nPikgICAgICAgIDw8IHN0ZDo6ZW5kbDsKICAgc3RkOjpjb3V0IDw8ICJzaXplb2YgcmlnaHQ8cGFkZGluZz4gICAgICAgPSAiIDw8IHNpemVvZiAocmlnaHQ8cGFkZGluZz4pICAgICAgIDw8IHN0ZDo6ZW5kbDsKICAgc3RkOjpjb3V0IDw8ICJzaXplb2YgbGVmdDxyaWdodDxwYWRkaW5nPj4gPSAiIDw8IHNpemVvZiAobGVmdDxyaWdodDxwYWRkaW5nPj4pIDw8IHN0ZDo6ZW5kbDsKICAgc3RkOjpjb3V0IDw8ICJzaXplb2YgcmlnaHQ8bGVmdDxwYWRkaW5nPj4gPSAiIDw8IHNpemVvZiAocmlnaHQ8bGVmdDxwYWRkaW5nPj4pIDw8IHN0ZDo6ZW5kbDsKfQ==