static allocator

declare alloc as a static data member
I have made a mistake.Change this line to std::allocator<std::string> Str::alloc;   and try again.
Do it compile?