diff --git a/membuffer/membuffer.h b/membuffer/membuffer.h index bc8f737..63e914f 100644 --- a/membuffer/membuffer.h +++ b/membuffer/membuffer.h @@ -156,6 +156,9 @@ private: size_t size_allocated; // how many memory is reserved size_t size_reserved; // memory reserved by reserve(), it is used by clear() + // used by ctors + void Initialize(); + void add_dynamic_node(); }; @@ -440,7 +443,7 @@ bool MemBuffer::const_iterator::operator template -MemBuffer::MemBuffer() +void MemBuffer::Initialize() { size_reserved = 0; size_used = 0; @@ -452,6 +455,13 @@ MemBuffer::MemBuffer() } +template +MemBuffer::MemBuffer() +{ + Initialize(); +} + + template MemBuffer::~MemBuffer() { @@ -468,6 +478,7 @@ MemBuffer::~MemBuffer() template MemBuffer::MemBuffer(const MemBuffer & arg) { + Initialize(); operator=(arg); }