Jj, děkuji za poznámku , já v zásadě o tom vím , jen to nemám pořádně nastudované a testované.
Tady by se hodil assume na _fetched false, protože překladač při optimalizaci co_await neví nic o tom jestli se ten příznak nenastavuje někdy jindy. Z funkce await_ready vedou tři cesty, z nichž jedna končí false a další dvě končí true, s nichž jedna má ten příznak _fetched nastaven na true a druhá na false. Teda takový je záměr ale překladač nemá jak ověřit ten poslední případ. Proto generuje rychlejší kód pokud je příznak explicitně vynulován, protože může přeskočit i ten test na _fetched v await_resume a ten return inlinuje do té přímé větve a vysledkem je pak jednoduchý cyklus s jednim testem - pokud je co_await v cyklu
Zkusím v další seanci tam dat c++23 a ověřit jak se to bude chovat s assume
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×