Názor ke článku RVO pro korutiny (C++20) od D.A.Tiger - Kdyz o tom tak premyslim, napada me otazka,...

  • 1. 4. 2024 10:58

    D.A.Tiger

    Kdyz o tom tak premyslim, napada me otazka, zda optimalizece RWO neni trocu ohjebak na rovnak.

    Ja to vzdycky chapal, tak, ze lokalni promena se pri navratu z funkce rusi. Tudiz pokud ji vracim hodnotou, je nutne ji vytvorit znovu (do kontextu volajici funkce). Pokud ji vsak vracim ukazatelem mam pruser, protoze bude po navratu z funkce ukazovat nekam kde nic uz nema nic byt. Pokud ji vsak vracim referenci, prekladac v ramci optimalizace promenou presune do kontextu volajici funkce. A funguje to i v pripade ze promennou vracim z ruznych casti volane funkce. Pracuji tak retezcove tridy, nebo retezitelne operatory.

    Proc je to tedy potreba, jenom kvuli korutinam? Neni to spis zavadeni dalsi komplexity do jazyka? Nehodilo by se spis varovani kompiletoru, ve smyslu : "Pozor budes tvorit novy objekt, nechces radeji vracet referenci"?