Whenever things get tough, C++ wimps out and forces another pointer indirection.
Of course, this 'solves' the problem for the C++ implementor, but throws a much larger problem over the fence onto the poor application writer and/or memory manager, who is now forced to deal with a much higher load of smaller objects.
Whoever said that C++ doesn't force you to pay for features you don't use hasn't ever programmed in C++ to any extent.
-- Henry Baker
[(Re: allocator and GC locality (was Re: cost of malloc), <email@example.com>)]