In the following definition, Tp should have byte value. template<class Tp> class polymorphic_allocator; Change the example as follows: template<class Tp = byte> class polymorphic_allocator; JP10