Size of class vs. size of enclosing template class
c++, sizeof, templates
Solution
I don't believe the standard makes that guarantee - an implementation is free to add padding at the end of `Bar`.
But it's hard to see why any real implementation would add padding at the end of `Bar` but not `Foo`. Unless, say, `Foo` was explicitly given some non-default alignment (e.g. byte aligned); `Bar` would then be padded to the default alignment.
Problem
Consider the code below: ``` class Foo { ... }; template <class T> class Bar { T t; }; ``` Is it guaranteed that `sizeof(Foo) == sizeof(Bar<Foo>)` always evaluates to `true` across any standard C++ compiler? Are there any situations in which the above condition would never be true?