Общий шаблон типа буфера / массива с нетривиальными типамиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Общий шаблон типа буфера / массива с нетривиальными типами

Сообщение Anonymous »

Как бы вы создали общий буфер или шаблон типа массива (не используя STL), который может использоваться на типе структуры, который включает в себя класс или нетривиальный тип. Что -то это, которое использует memcpy и то, что может не подходит.
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;
}

// ...


Подробнее здесь: https://stackoverflow.com/questions/797 ... vial-types
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»