V sobotu 15. června 2013 jsem měl na letošním Barcampu v Brně přednášku na téma dekompilace, což je proces získávání zdrojového kódu z binárního programu. V následujícím příspěvku se dozvíte, o čem přednáška byla a kde ji můžete zhlédnout online.
Často se setkávám s tím, že se v C++ k ukončení řádku ve výstupu používá std::endl
místo klasického '\n'
, které známe z Céčka. Důvod bývá různý, ale většinou je to něco ve stylu: "je to C++kovější řešení než '\n'
" či "je to přenositelnější". V tomto příspěvku se dozvíte, že ani jeden důvod není pravdivý a že použití '\n'
místo std::endl
vám může značně urychlit běh programu.
Možná jste se již setkali s různými zápisy použití operátoru sizeof
. Konkrétně se jedná např. o zápisy sizeof(int)
, sizeof(*p)
a sizeof *p
. Jaký je mezi těmito zápisy rozdíl a kdy je nutné použít závorky se dočtete v následujícím příspěvku.
Více než často vídávám, že se do hlavičkových souborů dává tzv. using direktiva ve tvaru using namespace xxx;
. Nejčastější je using namespace std;
. V následujícím příspěvku se dozvíte, proč je to špatný nápad a důvody, proč to nedělat.
Se standardní funkcí exit()
, která ukončí běh programu, se již asi setkal každý, kdo alespoň trochu programoval v jazyce C. Tato funkce spadá do kategorie funkcí, které se po zavolání nevracejí na místo, odkud byly volány. Méně se však ví, že kromě zmiňované funkce exit()
je v jazyce C řada dalších funkcí, které vykazují podobné chování. A právě o nich bude tento příspěvek. V závěru se také podíváme na nové klíčové slovo _Noreturn
, které je v souvislosti s tímto tématem k dispozici od ISO C11 (nejnovější standard jazyka C).
Dneska se podíváme na to, jak lze různými způsoby iterovat přes standardní kontejnery a jak si stojí tyto způsoby ve vzájemném porovnání z hlediska rychlosti. Mrkneme se i na to, co s tím dokáže udělat překladač při zapnutí optimalizací.
Vítejte v prvním díle nového seriálu na mém blogu: chyby v návrhu. Budeme se zabývat častými chybami v návrhu, kterých se dopouští (nejen) začínající programátoři. Dnes si povíme něco o situacích, kdy má třída příliš mnoho odpovědností.
Možná jste se už během své programátorské praxe dostali do situace, kdy jste potřebovali vaši bázovou třídu udělat čistě virtuální, ale žádná z metod k tomu nebyla vhodná. Jednou z možností, která je nepříliš známá, je využít destruktor. O tom, jak to udělat, je následující příspěvek.
10. prosince 2012 jsem měl společně s prof. Medunou úvodní přednášku na studentské konferenci Language Theory With Applications 2012 na téma "Skákající konečné automaty". O čem tato přednáška byla, kde můžete zhlédnout (konečně zveřejněný) záznam a kde si lze stáhnout materiály se dozvíte v následujícím krátkém příspěvku.
S kolegou Lukášem Vrábelem jsme dokončili projekt, který jsme vypracovali v rámci získaného FRVŠ grantu za rok 2012. Týkal se matematických základů teorie formálních jazyků. O výsledky bych se chtěl podělit v následujícím příspěvku.