Ultimately this is why Halpern, Lakos, et al. pushed for polymorphic allocators to be added to C++. We make heavy use of them because it gives the caller the full control over the allocator used in nearly all situations then the code is written properly to take and propagate allocators according to the rules.
(A little example posted by Bartlomiej Filipek showing a vector neatly using a stack buffer)
I’m sorry, but I’m not seeing the point you’re trying to make from your example: std::vector takes a custom allocator as a template parameter already (also, the order of characters in implementation-specific in C++, FWIW).
(A little example posted by Bartlomiej Filipek showing a vector neatly using a stack buffer)