Das ganze soll für eine schnelle container Klasse benutzt werden.
Im Moment benutze ich beim ändern Kapazität der Liste malloc um neuen
Speicher anzufordern, und kopiere dann mit
1 | new (adress) T(old_v[i])
|
die Objekte in den neuen Speicherbereich (T is der Templateparameter. es
wird also der Copy-Construktor verwendet). Anschließend wird der alte
mit free gelöscht.
C++ Objekte sollte man ja nicht bitweise mit z. B. memcpy verschieben,
sondern ebend den Copy-Construktor verwenden. Dieses kopieren versuche
ich nun zu vermeiden, soweit dies möglich ist.
Gibt es vielleicht eine Möglichkeit, einen Speicherbereich nur zu
vergrößern, wenn dies ohne verschieben möglich ist?
Könnte ich mich zumindest beim verkleinern mittels realloc darauf
verlassen, dass der Speicherbereich nicht verschoben wird?