Several sources ([1],[2]) mention that the purpose of std::allocator was to allow for different pointer types (near/far/huge) on 16 bit platforms and parts of this original