range-based for loops



  • Ich verstehe, was der Syntax

    for (auto const arg : Args
    

    und

    for (auto & arg : Args)
    

    usw bedeuten. es wird das aktuelle Objekt nicht kopiert sondern es wird ein Alias auf das eigentliche Objekt definiert, was bis auf native Datentypen effizienter ist.

    Aber was bedeutet in diesem Zusammenhang der Syntax

    for (auto && arg : Args)
    

    Handelt es sich hier um eine rvalue-Referenz?


  • Mod

    Diese Syntax hat nur dann einen Zweck, wenn die Iteratoren der Range Rvalues produzieren. Was so gut wie nie der Fall ist (bspw. wenn wir über eine Range iterieren, die Elemente ad hoc generiert und zurückgibt). Ergo ist auto& so gut wie immer ausreichend. auto&& wird auch funktionieren (siehe perfect forwarding reference), fällt aber unnötig ins Auge.


  • Mod

    Wiederholt eine bereits beantwortete Frage zu stellen, ist im Allg. nicht mit den Forenregeln vereinbar.


  • Mod

    camper schrieb:

    Wiederholt eine bereits beantwortete Frage zu stellen, ist im Allg. nicht mit den Forenregeln vereinbar.

    Bist Du Jurist?


Log in to reply