Was ist Copy Elision und wie optimiert es die Copy-and-Swap-Sprache?
ich habe gelesenKopieren und tauschen.
Ich habe versucht, einige Links auf Copy Elision zu lesen, konnte aber nicht richtig herausfinden, was es bedeutete. Kann jemand bitte erklären, was diese Optimierung ist, und insbesondere, was mit dem folgenden Text gemeint ist
Dies ist nicht nur eine Frage der Bequemlichkeit, sondern auch der Optimierung. Wenn der / die Parameter an einen Wert (ein anderes Objekt ohne Konstante) gebunden sind, wird beim Erstellen des / der Parameter automatisch eine Kopie des Objekts erstellt. Wenn s sich jedoch an einen r-Wert bindet (temporäres Objekt, Literal), wird die Kopie normalerweise gelöscht, wodurch ein Aufruf eines Kopierkonstruktors und eines Destruktors gespart wird. In der früheren Version des Zuweisungsoperators, in der der Parameter als const-Referenz akzeptiert wird, findet keine Kopierentscheidung statt, wenn die Referenz an einen r-Wert gebunden ist. Dies führt dazu, dass ein zusätzliches Objekt erstellt und zerstört wird.