template<class T>
void *operator new(size_t n, allocator<T>& al);
The template operator function lets you write a placement new expression that allocates storage under control of the
allocator object al, as in new(al) U, to allocate and construct a new object of type U. The function effectively returns
allocator<T>::rebind<char>::other(al).allocate(n, (void *)0).