I was under the impression that an optimizing C++ compiler would be able to inline the container object and the contained object into one when working with template code, so that you would end up with something exactly like the C version but without the manual bookeeping.
At least I thought it could do this for certain types of classes, much like an optimizing C compiler can selectively inline functions based on heuristics.