Hlavní navigace

Programátorské techniky nejen v C++

  • Sdílení objektů mezi vlákny jednoduše v C++20

    Programování vícevláknových aplikací může být pro některé programátory skutečnou výzvou. Problémové situace nastávají kdykoliv vlákna přistupují na sdílené objekty. Zapomenutá synchronizace je často zdrojem nepředvídatelného chování a náhodných pádů. Ale vhodným nástrojem si lze práci zjednodušit a kód dobře zabezpečit
    11. 2. 2024 13:55
  • Trable s moduly v C++20/23

    Již v roce 2020 jsme se dočkali nového nástroje na organizaci zdrojových souborů u velkých projektů v C++, a to jsou moduly. V tomto článku se pokusím formulovat svůj rozporuplný pocit, který z toho mám. Jak asi tušíte, považuji se za „C++ maximalistu“ a též se snažím držet krok s vývojem tohoto jazyka. S různými úspěchy se mi to daří a to navzdory tomu, že píšeme rok 2024 a poslední schválenou verzí by měla být C++23, já se neustále probírám novinkami v C++20. Už jsem se úspěšně popral s koruti
    14. 1. 2024 18:58 (aktualizováno)
  • NOSTR, "pštrosí" sociální síť

    V článku proberu nově vznikající decentralizovanou síť NOSTR. Co to je, v čem stojí za pozornost, jakými bolestmi trpí, co se nepovedlo a zda to vůbec má smysl. NOSTR je zkratka, která znamená Notes and Other Stuff Transmitted by Relay. Často jej snadno poznáte pomocí loga zobrazující pštrose – jako ostrich. 
    20. 8. 2023 13:46
  • Napsal jsem si databázi v C++

    Možná někoho napadne, co je to za bláznivý nápad, proč by si někdo psal novou databázi. Není to zbytečná práce? Proč nesáhnout po něčem existujícím? Databází máme přehršel. Na druhou stranu, proč ne. Uplatnění si určitě najde Co je DocDB[1] Nejprve bych trochu poupravil clickbaitový titulek.  Určitě se nejedná o „standalone“ databázi, ale o knihovnu pro C++, kdy je databáze integrální součástí C++ projektu – tedy přímo realizovaná ve výsledném programu, nikoliv tedy jako externí server…
    16. 7. 2023 20:58 (aktualizováno)
  • C++: Mapování hodnot z runtime na integrální konstanty

    Dneska to bude relativně krátké. S každou další verzí C++ lze víc a víc algoritmů přesunout do constexpr „domény“, ve které se výpočty provádí během překladu a v runtime se již používají výsledky toho výpočtu. Často ale vstupem do takového výpočtu je hodnota získaná až v runtime. Proč to potřebujeme?
    5. 6. 2023 8:28 (aktualizováno)
  • C++20 Korutiny - Přepis knihovny CoCls

    Uplynul nějaký čas kdy jsem se musel věnovat jiným úkolům, ale ke korutinám jsem se vrátil. Často se vyplatí nechat téma „uležet“ a vrátit se později s úplně jiným pohledem na celou věc. Zvlášť, když člověk za to dobu spoustu věcí zapomene a pak když se k tomu vrátí, má najednou pocit, že je všechno až zbytečně  komplexní (překomplikované). Takže jsem se rozhodl svou knihovnu na korutiny lehce přepracovat.
    12. 4. 2023 9:13 (aktualizováno)
  • C++20: kde bydlí korutiny

    V předchozích článcích jsem se snažil vysvětlit co jsou to korutiny v C++20, jak jsou implementované interně, jak je správně budit a napsali jsme si šablonu pro jednoduchou korutinu. Bystrý programátor by se však měl také zajímat o tom, kde je uložen stav korutiny a jak probíhá alokace paměti pro tento stav.
    17. 2. 2023 17:25
  • Jednoduchá korutina v C++ 20

    Jak už víme, korutiny do C++ byly „doručeny“ ve stavu, kdy je nelze použít jak se říká „po vybalení z krabice“. Je to spíš taková stravebnice, něco jako LEGO, ovšem bez návodu. Návodů na internetu lze najít mnoho, ať v podobě tutoriálů, nebo celých knihoven, které lze používat bez nároků na hlubší znalosti fungování pod kapotou. Myslím si, že vědět, co se uvnitř děje a mít schopnost naprogramovat si podporu korutin z dodaných kostiček se prostě dobrému programátorovi bude hodit.
    5. 2. 2023 22:03 (aktualizováno)
  • C++20: Jak se budí korutiny

    Minulý článek vyzněl jako kritika implementace korutin v C++20. To jsem ani nechtěl, naopak si myslím, že je to skvěle vymyšlené s ohledem na užitečnost a vyjadřovací svobodu, kterou to přináší. Problémem je spíš neexistence pravidel a doporučení jak korutiny implementovat. Nositelem takových doporučení je často právě STL, která ve verzi 20 toho v oblasti korutin mnoho nepřináší, a nejinak je i v nových verzích…
    30. 10. 2022 21:57 (aktualizováno)
  • Jak na korutiny v C++20

    Když před cca 2 roky konečně vyšla norma C++ verze 20, těšil jsem se, jako asi každý, jak si ošahám a vyzkouším nové featury, které měly posunout jazyk zase trošku dál do budoucnosti. C++20 přináší podporu korutin, tedy nástroje, který byl doposud spíš výsadou vyšších programovacích jazyků – ano těch, co mají pod sebou nějaký runtime, ať už jde o interprety, nebo JIT překládané jazyky (třeba javascriptovýasync-await)…
    16. 10. 2022 19:01 (aktualizováno)