operator new

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).