Hi, I've read a while ago that memory allocation with new for each and every object was inefficient. Knowing me, I obviously read more on the matter.
I think it was Framework who said this, and he stated what was said above, then he said that his framework allocated large blocks of memory (~1 mb of memory), and then subdivided the memory on request.
The lack of virtual destructor hints that std::allocator isn't meant to be inherited.
It isn't, but since it is used with templates it doesn't matter -- the templated class will create and destroy its allocator based on the allocator's declared type. No polymorphism involved.