fork download
  1. #include <iostream>
  2.  
  3. struct base {};
  4.  
  5. template<typename Type>
  6. struct left : base {
  7.  
  8. Type value;
  9. };
  10.  
  11. template<typename Type>
  12. struct right : base {
  13.  
  14. Type value;
  15. };
  16.  
  17.  
  18. struct padding {
  19. char _padding_[32];
  20. };
  21.  
  22.  
  23. int main() {
  24. std::cout << "sizeof padding = " << sizeof (padding) << std::endl;
  25. std::cout << "sizeof left<padding> = " << sizeof (left<padding>) << std::endl;
  26. std::cout << "sizeof right<padding> = " << sizeof (right<padding>) << std::endl;
  27. std::cout << "sizeof left<right<padding>> = " << sizeof (left<right<padding>>) << std::endl;
  28. std::cout << "sizeof right<left<padding>> = " << sizeof (right<left<padding>>) << std::endl;
  29. }
Success #stdin #stdout 0s 2884KB
stdin
Standard input is empty
stdout
sizeof padding              = 32
sizeof left<padding>        = 32
sizeof right<padding>       = 32
sizeof left<right<padding>> = 33
sizeof right<left<padding>> = 33