Generische wachsbare Puffer- / Array-Vorlage mit nicht trivialen TypenC++

Programme in C++. Entwicklerforum
Anonymous
 Generische wachsbare Puffer- / Array-Vorlage mit nicht trivialen Typen

Post by Anonymous »

Wie würden Sie eine generische Puffer- oder Array-Vorlage erstellen (nicht mit STL), die für einen Strukturtyp verwendet werden kann, der eine Klasse oder einen nicht trivialen Typ enthält. Etwas dies, das Memcpy verwendet und deren kann nicht angemessen sein.

Code: Select all

template
class CGrowableBuffer
{

protected:
T* m_pBuff;
unsigned m_nSize;
unsigned m_nCount;
unsigned m_nGrowBy;
};

// ...

template
IBOOL CGrowableBuffer::Insert(const T* p, unsigned index, unsigned count)
{
if (index>m_nCount || !SetSize(m_nCount + count))
return FALSE;
memmove(m_pBuff+index+count, m_pBuff+index, (m_nCount-index)*sizeof(T));
if (p==NULL) {
memset(m_pBuff + index, 0, count * sizeof(T));
}
else {
memcpy(m_pBuff + index, p, count * sizeof(T));
}
m_nCount += count;
return TRUE;
}

// ...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post