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"?
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 51 190×
Přečteno 24 017×
Přečteno 22 904×
Přečteno 21 069×
Přečteno 17 807×