This is why the rebind type exists. It allows you to create a similar allocator that instead allocates something else (like a node<T>
for example).
Basically like this:
std::allocator<int> int_alloc;
std::allocator<int>::rebind<node<int>> node_alloc;
//Perhaps more useful:
decltype(int_alloc)::rebind<node<int>> node_alloc;
Of course, in a real situation this would all be templated, but hopefully this shows the idea.
For more information, read the notes and examples here.