Odpovídáte na názor ke článku Nechte testovat překladač.
Již nějakou dobu píšu veškerý svůj kód jako `constexpr`. Jak jsem k tomu došel? Začal jsem (z nějakého důvodu) psát v C89, poté jsem si řekl "jak těžké by bylo zavést do tohoto kódu constexpr?“. No, těžké to nebylo, přidal jsem pár maker a můj kód byl C++14 constexpr kompatibilní. K testování: Běžně používám fuzz testy (clang a MSVC). A všude v kódu mám milion assertů, takže chybu implementace nějakého algoritmu snadno a rychle odhalím. Jenže já jsem chtěl fuzz testovat i v constexpr režimu. K tomu je potřeba generátor náhodných čísel. Ten jsem implementoval konzumací maker typu __FILE__, __LINE__, __DATE__ a podobných. Pošlu je do SHA-3 a pomocí SHAKE128 funkce můžu generovat nekonečné množství náhodných čísel. Popřípadě můžu použít BLAKE3 místo SHAKE128. Dále jsem řešil podobný problém jako autor s rozdělením na hlavičkové a implementační soubory. Vyřešil jsem je tím, že každý header úplně na konci podmíněně (macro) includuje korespondující cpp soubor. Toto ale nedoporučuji, protože překlad trvá velmi, velmi, velmi dlouho a kompiler spotřebuje velmi, velmi, velmi hodně paměti RAM (desítky GB).
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 599×
Přečteno 27 720×
Přečteno 26 403×
Přečteno 24 367×
Přečteno 22 864×