Размещение нового конструктора, упомянутого в принятом ответе, является старым способом перед классом распределителя, определенным в заголовке. Теперь вы действительно должны сделать (в стиле C ++ 11):
allocator<Foo> alloc;
//Allocate memory for one or n objects
auto p = alloc.allocate(1);
//Construct an object of Foo on allocated memory block p, by calling one of Foo's constructors
alloc.construct(p, args, ...);
//OK, p now points to a Foo object ready for use...
//Call Foo's destructor but don't release memory of p
alloc.destroy(p);
//Release memory
alloc.deallocate(p, 1);
Вот и все.