Hintergrund:Kopieren std :: vector von primitiven Typen Verhalten
Wenn ein std::vector
Kopieren seiner Kopie Konstruktor oder kopieren Zuordnung wie folgt aus:
std::vector<T> v1{T(),T(),T()};
std::vector<T> v2 = v1;
eine tiefe Kopie geschieht.
Wird durch den Standard garantiert, dass der Kopierkonstruktor von T
für jedes Element ausgelöst wird? Mit anderen Worten wird kein memcpy
(oder etwas ähnliches) aufgerufen. (Korrigiere mich, wenn ich falsch liege).
Frage:
Auf der anderen Seite wird durch den Standard garantiert, dass es memcpy
(oder so ähnlich) auf primitive Typen nennen würde (für Performance-Probleme)?
"Wird durch den Standard garantiert, dass der Kopierkonstruktor des T für jedes Element ausgelöst wird?" - bestimmt. Wie sonst kann es sich verhalten? Warum fragst du überhaupt? – Mikhail
Es wäre verrückt, den Kopierkonstruktor nicht aufzurufen ... – marom
siehe bitte bearbeiten –