BTW: what about std::vector and your own allocator?
If you, for whatever reason, use the container API extensively enough to make this worth of effort.
(I didn't use stdlib extensively enough to be sure, but I think all the standard containers allow to use your own allocators?? Maybe I'm wrong.)
AFAIK, especially in the case of std::vector, there are no guarantees provided w.r.t. alignment of elements (other that these are ok for T and normal processing).