Was ist der Vorteil der Verwendung von forwarding-Referenzen in range-basierte for-Schleifen?

const auto& würde genügen, wenn ich möchte nur-lese-Operationen. Ich habe allerdings stieß in

for (auto&& e : v)  //v is non-const

ein paar mal vor kurzem. Das macht mich Frage mich:

Ist es möglich, dass in einigen obskuren Ecke Fälle gibt es einige performance-Vorteil in der Verwendung von forwarding-Referenzen im Vergleich zu auto& oder const auto&?

(shared_ptr ist ein Verdächtiger für die obskuren Ecke Fälle)


Update
Zwei Beispiele, die ich gefunden habe in meinen Favoriten:

Jeder Nachteil der Verwendung von const-Referenz bei der Iteration über die grundlegenden Typen?

Kann ich problemlos Durchlaufen, die Werte einer map mit einem range-basierte for-Schleife?

Bitte konzentrieren sich auf die Frage: warum würde ich wollen, verwenden Sie den auto&& in die range-basierte for-Schleifen?

  • Tun Sie wirklich sehen, dass es "oft"?
  • Ich bin mir nicht sicher, es gibt genug Kontext, in Ihrer Frage für mich um zu Messen, wie "verrückt" es ist, wo Sie sind, es zu sehen.
  • Lange Rede, kurzer Sinn: warum würde ich wollen, verwenden Sie auto&& im range-basierte for-Schleifen?
InformationsquelleAutor Ali | 2012-10-29
Schreibe einen Kommentar