unsigned char *getPointer(const unsigned int index, const unsigned int requestedLength) const { return (index<length && index+requestedLength<=length) ? &buffer[index] : overflowPointer() ; }
T* getPointer() const { return p_; }
   unsigned char *getPointer(const unsigned int index, const unsigned int requestedLength) const      { return (index<length && index+requestedLength<=length) ? &buffer[index] : overflowPointer() ; }