Hlavní navigace

Programátorské techniky nejen v C++

  • 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)
  • Minimalistický http server v C++

    Každý určitě má nějaký koníček. A v rámci svých koníčků člověk často dělá věci, které zdánlivě nemají smysl, nebo v dané době už jsou překonané. Prostě vynalézáme poněkolikáté kolo. Přesto to může být zábava V tomto článku popíšu, jak jsem naprogramoval minimalistický http server v C++ 17. Začalo to přitom nevině, na začátku byla snaha zobrazit obsah adresáře v prohlížeči…
    29. 9. 2018 15:39 (aktualizováno)
  • CouchDB a skriptování v C++

    Následující článek bude skriptování pohledů v NoSQL databázi CouchDB pomocí jazyka C++. Pokusím se představit nástroj, který jsem k tomuto účelu vytvořil včetně popisu implementace. Při vymýšlení titulku jsem si představil šokované oči odmítačů jazyka C++ při představě, že by se v něm dalo „skriptovat“. Ale proč ne? Motivací bylo více…
    28. 4. 2017 22:00 (aktualizováno)
  • JSON pro C++11 s immutabilním DOMem.

    Po dlouhé době jsem se rozhodl, že zaseněco napíšu na blog zde na Rootu a i tentokrát to bude něco z mé vlastní programátorské tvorby. Jde o knihovnu ImtJSON která je určena k práci s formátem JSON a je k dispozici zcela zdarma pod licencí MIT. Odkaz najdete na konci článku. Důvody vzniku další knihovny pro práci s JSONem mohou být pro „přespolního“ programátora nejasné. Vždyť se stačí podívat na stránky www.json.org, které jsou výživným zdrojem informací o tomto populárním formátu, a lze zde na
    12. 1. 2017 1:52
  • Přihlašte se QR kódem

    Titulek článku není úplně přesný, správně by nadpis měl znít „Přihlaste se oskenováním QR kódu“ – Je to sice dlouhé, ale lépe vystihuje následující obsah. Chtěl bych totiž představit svůj „mini-projekt“ bezpečného přihlašování v prostředí internetu. Něco, co by mělo nahradit velice nebezpečné přihlašování jménem a heslem.
    10. 5. 2015 19:35 (aktualizováno)
  • SEH v Linuxu (C++)

    Pokud programujete ve Windows, tak zkratka SEH vám asi není úplně neznámá. SEH znamená „Structured Exception Handling“, jedná se o nadstavbu nad C/C++ a připomíná to klasické C++ výjimky. Začátek bloku se označuje klíčovým slovem __try a blok provedený při výjimce se nazývá __except. SEH disponuje ještě klíčovým slovem __finally
    5. 9. 2012 0:58 (aktualizováno)
  • Jak zakázat explicitní fsync (v Ubuntu)

    Sync, fsync, fdatasync, díváte se na jednu trojici z mnoha zel, které na linuxu občas potkávám. Tyto příkazy obecně mají zaručovat programu, že všechny data která do souboru zapsal, budou fyzicky zapsána na disk. A teď by se mohlo diskutovat o tom, jestli vůbec má uživatelská aplikace (čili program běžící v userspace) právo takto přímo manipulovat s HW daného počítače…
    9. 6. 2012 23:46 (aktualizováno)
  • Náhrada chybějícího finally v C++11

    Znám dost kolegů programátorů (a internetové diskuze jsou jimi plné), kteří nelibě nesou neexistence klíčového slova finally v bloku try-catch. Blok uvozený klíčovým slovem finally se provadí vždy, bez ohledu, zda blok try skončil nebo neskončil výjimkou. Takový blok najdeme v Javě a hodně se využívá.
    6. 9. 2012 8:11 (aktualizováno)
  • Skrytá úskalí vícenásobné dědičnosti v C++

    Upozorňuji dopředu, že nehodlám zde probírat to, co všichni programátoři v C++ určitě znají a co si mohou přečíst na milionech stránkách, které nabídne google. Myslím tím zejména ony problémy s diamantovým děděním a jak správně pracovat s virtuální dědičností. Při práci s generikou, kdy se hojně používají „prázdné třídy“ časem narazíme na další komplikaci, které i zkušeného programátora překvapí a možná mu trošku zkomplikují život. 
    7. 5. 2012 0:13 (aktualizováno)