Ukážeme si dva případy, kdy přítomnost kulatých závorek v C++ na první pohled působí zbytečně, ale přitom má značný vliv na význam kódu. A nebojte, nebude se jednat o uzávorkování z důvodů priority operátorů :).
V příspěvku se podíváme na rozdíl mezi operacemi match a search u regulárních výrazů v jazycích C++ a Python. Především si však ukážeme záludnost, ve které se operace match ve zmíněných jazycích liší. Velmi stručně se podíváme i na pár dalších jazyků.
Možnost vytvářet v C a C++ ukazatele na funkce či pole je poměrně dobře známá. V C++ však lze mimo ukazatelů vytvářet i reference na funkce a pole. V příspěvku se krátce podíváme na to, kdy se to může hodit.
Podíváme se krátce na to, v čem se liší zpracování textových a binárních souborů. Vše si budeme ilustrovat v Pythonu. Tento příspěvek volně navazuje na můj předchozí příspěvek o rozdílech mezi znakovou sadou a kódováním.
Od C++11 přibyly tzv. typové aliasy (using TypeAlias = OriginalType;). Jedná se o alternativu pro klasický typedef. V příspěvku uvedu několik důvodů, proč od C++11 na typedef zapomenout a využívat pouze typové aliasy.
Občas dochází k zaměňování pojmů znaková sada a kódování. Nejčastěji se s tímto setkávám v případech, kdy dotyčný hovoří o Unicode a např. UTF-8 tak, jako by to bylo to stejné. V příspěvku se podíváme na to, jaký je mezi těmito dvěma termíny rozdíl a budeme si to prakticky ilustrovat na příkladech v Pythonu.
Od C++11 je k dispozici specifikátor override. Lze pomocí něj označit virtuální metodu, která předefinovává (anglicky overrides) virtuální metodu z nadtřídy. V příspěvku uvedu dva důvody, proč je dobré všechny takovéto metody tímto specifikátorem označovat.
Možná jste se již setkali s C++ kódem, kde se místo size_t využívalo std::size_t. V tomto krátkém příspěvku se dozvíte, jaký je v nich rozdíl a který z nich používat.