Odpovídáte na názor ke článku C++20: kde bydlí korutiny.
Tak nejste typický programátor knihoven.
Z hlediska uživatelů se nic moc nemění, generika akorát nahrazují type erasure, které se používá v C. V javascriptu chápu, že se neuvádí typu async, protože tam není typová kontrola.
Pro lidi, co knihovny používají se snažím navrhovat jednoduchá API.
task<T> - toho bych se fakt nebál. Místo T se samozřemě dá typ, takže task<int> je prostě korutina, která vrací int, akorát není dostupný hned. Lze použít i task<void>
V javascriptu, pokud uvedu klíčové slovo async, tak vím, že mi z funkce vypadne Promise. Pokud ho neuvedu, může vypadnout cokoliv, (včetně Promise). V C++ musím vždycky uvádět typ. A dává mi smysl, aby třeba některá moje funkce vracela future<int> - to je celkem dobře popisné, je to proměnná, která bude dostupná v budoucnosti a bude typu int. (dokonce v jednom návrh jsem používal šablonu async<typ> podle javascriptu). Použití pak se nelíší od javascriptu. Akorát místo await píšu co_await (nová klíčová slova se špatně zavádí do jazyka, kde už mohou existovat tyto slova jako identifikátory)
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 57 601×
Přečteno 27 720×
Přečteno 26 403×
Přečteno 24 367×
Přečteno 22 864×