Ich las Copy and Swap.Was ist Kopie Elision und wie optimiert es die Kopie-und-Austausch-Idiom?
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 vor allem, was durch den folgenden Text gemeint ist
Dies ist nicht nur eine Frage der Bequemlichkeit, sondern in der Tat eine Optimierung. Wenn der/die Parameter an einen L-Wert (ein anderes nicht-konstantes Objekt) gebunden sind, wird beim Erstellen der Parameter automatisch eine Kopie des Objekts erstellt. Wenn s jedoch an einen rvalue (temporäres Objekt, Literal) gebunden ist, wird die Kopie normalerweise entfernt, wodurch ein Aufruf an einen Kopierkonstruktor und einen Destruktor gespeichert wird. In der früheren Version des Zuweisungsoperators, bei der der Parameter als const-Referenz akzeptiert wird, findet die Kopie nicht statt, wenn die Referenz an einen rvalue bindet. Dies führt dazu, dass ein zusätzliches Objekt erstellt und zerstört wird.
Related: [Was ist Kopie elision?] (Http://stackoverflow.com/questions/12953127/what-are-copy-elision-and-return-value-optimization) –