Odpověď na názor

Odpovídáte na názor ke článku Nechte testovat překladač.

  • 14. 1. 2025 21:37

    Marek

    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).