Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/www/novacisko.cz/subdomains/bredy/init.php on line 11

Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50562 Library:100020 in /home/www/novacisko.cz/subdomains/bredy/init.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at /home/www/novacisko.cz/subdomains/bredy/init.php:11) in /home/www/novacisko.cz/subdomains/bredy/pages/rss.php on line 5
Bredyho blog - Ondřej Novák - Články.Programováníhttp://bredy.novacisko.cz/?g=main&kat=13Programování v čemkoliv.cs©2006 Ondřej Novák BredySoftwareondra-novak@email.cz (Ondřej Novák)ondra-novak@email.cz (Ondřej Novák)Thu, 14 Nov 2019 08:31:06 GMTThu, 14 Nov 2019 08:31:06 GMTSeznamy typů a jejich použitíhttp://bredy.novacisko.cz/?g=clanek&c=261Opět inspirován známým C++ guru: ''Andrei Alexandrescu'' jsem se vrhnul na implementaci seznamů typů "po svém". V této části si povíme co to je a k čemu to slouží.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek261/2010-05-06+18%3A24%3A02 +0100http://bredy.novacisko.cz/?g=clanek&c=261#diskuzeDelegování zpracování výjimkyhttp://bredy.novacisko.cz/?g=clanek&c=259V situacích, kdy potřebujeme určité typy výjemek zpracovat stejným způsobem, můžeme jejich zpracování delegovat do jiné funkce.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek259/2009-12-27+22%3A35%3A54 +0100http://bredy.novacisko.cz/?g=clanek&c=259#diskuzeJak provést operaci až po příkazu returnhttp://bredy.novacisko.cz/?g=clanek&c=254Pokud optimalizujeme kód tak, abychom mohli využít [[Vracíme z funkce objekty|výhod vracení objektu z funkce]], narazíme občas na problém, kterak provést některé operace až po provedení příkazu ''return''ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek254/2009-08-24+13%3A05%3A13 +0100http://bredy.novacisko.cz/?g=clanek&c=254#diskuzeJak předělat dvou-parametrovou šablonu na jedno-parametrovouhttp://bredy.novacisko.cz/?g=clanek&c=253[[img:>template-c-icon.png]]Popis jednoduchého trikuondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek253/2009-08-21+08%3A37%3A47 +0100http://bredy.novacisko.cz/?g=clanek&c=253#diskuzeJak lépe deklarovat enumy v C++http://bredy.novacisko.cz/?g=clanek&c=247Jedna krátká rada, jak si neudělat v programu nepořádekondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek247/2009-05-22+16%3A51%3A34 +0100http://bredy.novacisko.cz/?g=clanek&c=247#diskuzeJak dostat řetězec do parametru šablonyhttp://bredy.novacisko.cz/?g=clanek&c=243Současná norma C++ umožňuje jako parametr šablony použít tzv. integrální typy, tedy typy odvozené od ''int'', dále ''bool'', ukazatel a referenci. Ukažme si, existuje způsob, jak tam dostat i řetězecondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek243/2009-02-04+00%3A23%3A41 +0100http://bredy.novacisko.cz/?g=clanek&c=243#diskuzeGarbage collector v C++ - Popis API tříd kolekce LightSpeed::GChttp://bredy.novacisko.cz/?g=clanek&c=241V tomto článku si představíme rozhrani Garbage Collectoru v knihovně LightSpeed. Princip GC byl přidstaven v [[Garbage collector - automatický úklid objektů v C++|předchozím díle]]ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek241/2009-01-27+01%3A03%3A00 +0100http://bredy.novacisko.cz/?g=clanek&c=241#diskuzeGarbage collector - automatický úklid objektů v C++http://bredy.novacisko.cz/?g=clanek&c=239Článek navazuje na [[GarbageCollector v C++, prototyp]], kde jsme si představili prototyp třídy provádějící automatický úklid objektů známy jako "garbage collector". Dnes si ukážeme další verzi, nazvěme ji "alfa"ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek239/2008-12-30+23%3A48%3A38 +0100http://bredy.novacisko.cz/?g=clanek&c=239#diskuzeSerializace dat a objektů IV - Transport a strukturahttp://bredy.novacisko.cz/?g=clanek&c=232Dnešní díl o serializaci se pozastaví nad nejvhodnější implementací transportního modulu a pak se vrhneme na strukturu dat.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek232/2008-09-23+11%3A36%3A43 +0100http://bredy.novacisko.cz/?g=clanek&c=232#diskuzeSerializace dat a objektů III - Volba formátuhttp://bredy.novacisko.cz/?g=clanek&c=231V našem seriálu o serializaci si tentokrát ukážeme, jakým způsobem budeme volit formát výsledného streamu. Nepůjde o konkrétní formáty, ale o způsoby, jak různé formáty implementovatondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek231/2008-09-19+12%3A02%3A52 +0100http://bredy.novacisko.cz/?g=clanek&c=231#diskuzeSerializace dat a objektů II - Návrh serializátoruhttp://bredy.novacisko.cz/?g=clanek&c=230Po teoretickém úvodu o serializaci se podíváme (ještě stále teoreticky) na vlastní serializátor. Zatím si uděláme takovou jednoduchou analýzuondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek230/2008-09-18+11%3A48%3A15 +0100http://bredy.novacisko.cz/?g=clanek&c=230#diskuzeSerializace dat a objektůhttp://bredy.novacisko.cz/?g=clanek&c=220[[img:>ObrazekC++.jpg]]Následující článek je úvodem do další série o generickém programování (šablony), nyní se zaměříme na problém perzistentního ukládání dat nebo jejich transport, obecně o serializaci a deserializaci datondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek220/2008-09-15+15%3A36%3A26 +0100http://bredy.novacisko.cz/?g=clanek&c=220#diskuzeAutomatické klonování objektů v C++ IIhttp://bredy.novacisko.cz/?g=clanek&c=226Dneska se podíváme jak klonovat pomocí clone_ptr (ClonePtr)ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek226/2008-07-28+01%3A48%3A31 +0100http://bredy.novacisko.cz/?g=clanek&c=226#diskuzeAutomatické klonování objektů v C++http://bredy.novacisko.cz/?g=clanek&c=225[[img:>main_page_programovani.jpg]]C++ nenabízí standardní prostředky jako klonovat objekty. Pouze kopírovací kontruktor, který nám však v případě polymorfních objektů moc nepomůže. Naše "lenost" nám však pomůže nalézt řešení.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek225/2008-07-27+02%3A50%3A49 +0100http://bredy.novacisko.cz/?g=clanek&c=225#diskuzeJak sdílet prostředky (resources) v C++http://bredy.novacisko.cz/?g=clanek&c=224Nemnohokrát jsem řešil v programech psaných v C++, jak sdílet prostředky (resources), jinými slovy, jak zajistit, že jedinečné prostředky budou uvolňovány až v okamžiku, kdy je nikdo nepotřebuje. Podívejme se na jednoduché řešení.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek224/2008-07-16+17%3A31%3A26 +0100http://bredy.novacisko.cz/?g=clanek&c=224#diskuzeHacking v podání Microsoftuhttp://bredy.novacisko.cz/?g=clanek&c=223[[img:>IE8_20465b.png]]Microsoftí paranoia proti zákeřným komponentám potají instalovaných do Internet Exploreru nabírá na síle. Microsoft se dokonce odvážil k "obraně" použít techniky známé spíš virům...ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek223/2008-07-10+11%3A36%3A47 +0100http://bredy.novacisko.cz/?g=clanek&c=223#diskuzeFastAllocPool - urychlení častých alokací a dealokacíhttp://bredy.novacisko.cz/?g=clanek&c=217Pokud v programu z nějakých důvodů potřebujeme často provádět ''new'' a ''delete'' nad některými třídami, můžeme zvýšit efektivitu těchto operací zavedením poolu předalokované pamětiondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek217/2008-04-11+01%3A22%3A02 +0100http://bredy.novacisko.cz/?g=clanek&c=217#diskuzeTuples v C++http://bredy.novacisko.cz/?g=clanek&c=180Pokud si pamatujete na seriál [[Funkce s volitelným počtem argumentů v C++]], tak v této části najdete jakési pokračování, i když cílem článku je trošku něco jinéhoondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek180/2008-04-02+10%3A00%3A12 +0100http://bredy.novacisko.cz/?g=clanek&c=180#diskuzeJak bezpečně ukončit vlákno z DllMainhttp://bredy.novacisko.cz/?g=clanek&c=216[[img:>main_page_programovani.jpg]]Kdo už se s tím setkal, určitě nad tím strávil hodně času. Jak to že není možné bezpečně ukončit vlákno z DllMain? Proč aplikace skončí v deadlocku? To opravdu neexistuje jiné řešení?ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek216/2008-02-29+19%3A53%3A07 +0100http://bredy.novacisko.cz/?g=clanek&c=216#diskuzeAkce a Zpráva jako objekt v.2http://bredy.novacisko.cz/?g=clanek&c=195V článku [[C++ - Akce a Zpráva jako objekt]] jsem představil dva objekty, jenž slouží k objektovému zabalení volání funkce nebo metody. V tomto článku si představíme vylepšenou druhou verzi.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek195/2007-11-01+11%3A00%3A40 +0100http://bredy.novacisko.cz/?g=clanek&c=195#diskuzeTuple v C++ ver. 2http://bredy.novacisko.cz/?g=clanek&c=194Druhá verze implementace tuplů v C++. Navazuje na článek [[Tuples v C++]]ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek194/2007-10-28+14%3A54%3A42 +0100http://bredy.novacisko.cz/?g=clanek&c=194#diskuzeJak na destruktory v Javěhttp://bredy.novacisko.cz/?g=clanek&c=193Chybí vám destruktor v Javě. Úplně jej nahradit neumíme, ale jisté řešení by se našloondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek193/2007-10-23+01%3A20%3A22 +0100http://bredy.novacisko.cz/?g=clanek&c=193#diskuzeJak na paralelní překlad ve VC8http://bredy.novacisko.cz/?g=clanek&c=184Máte doma procesor s DualCore? Nebo snad máte víc jader? A vadí vám, že VC8 Express moc dobře nevyužije tuto vlastnost? Závidíte linuxakům příkaz ''make -jN''? Mám pro Vás dobrou zprávu.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek184/2007-08-22+20%3A56%3A59 +0100http://bredy.novacisko.cz/?g=clanek&c=184#diskuzeFunkce s volitelným počtem argumentů v C++http://bredy.novacisko.cz/?g=clanek&c=76Leckterý programátor v C jistě zná syntaxtický zápis funkce s volitelným počtem argumentů. V následujícím článku se podíváme na nevýhody tohoto nástroje a způsoby jak to implementovat jinakondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek76/2007-08-21+09%3A10%3A32 +0100http://bredy.novacisko.cz/?g=clanek&c=76#diskuzeDistributor - vaše objekty budou o svém okolí vědět všehttp://bredy.novacisko.cz/?g=clanek&c=182Největším problémem většiny UI /ale i ne-IU/ aplikací, které potkávám, je špatná nebo vůbec nevyřešená komunikace mezi důležitými objekty. Přitom stačí málo, obstarat si distributora.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek182/2007-08-17+18%3A13%3A01 +0100http://bredy.novacisko.cz/?g=clanek&c=182#diskuzeC++ - Akce a Zpráva jako objekthttp://bredy.novacisko.cz/?g=clanek&c=181Akcí nazývám obyčejné volání funkce, zprávou pak volání metody objektu (jak je chápáno podle OOP). Lze vůbec volání čehokoliv reprezentovat jako objekt? A k čemu je to vlastně dobré?ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek181/2007-08-15+19%3A09%3A42 +0100http://bredy.novacisko.cz/?g=clanek&c=181#diskuzeVracíme z funkce objekty - problémyhttp://bredy.novacisko.cz/?g=clanek&c=171Při praktickém používání technik [[Vracíme z funkce objekty]] narazíme na nečekané a možná nelogické problémy.ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek171/2007-06-18+20%3A13%3A23 +0100http://bredy.novacisko.cz/?g=clanek&c=171#diskuzeVracíme z funkce objekty - praktická ukázkahttp://bredy.novacisko.cz/?g=clanek&c=161V článku [[Vracíme z funkce objekty]] jsem ukazoval, jak probíhá návrat objektu z funkce a jak toto optimalizovat tak, aby se minimalizovalo používání kopírování. Teď si to ukážeme prakticky - použil jsem gcc bez optimalizacíondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek161/2007-05-23+11%3A58%3A30 +0100http://bredy.novacisko.cz/?g=clanek&c=161#diskuzeVracíme z funkce objektyhttp://bredy.novacisko.cz/?g=clanek&c=90Podívejme se blížeji na to, jakým způsobem je implementováno vracení výsledku z volání funkcí. Zboříme při tom všelijaké mýtyondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek90/2007-05-23+11%3A58%3A18 +0100http://bredy.novacisko.cz/?g=clanek&c=90#diskuzePár triků na kompresi přímo v kóduhttp://bredy.novacisko.cz/?g=clanek&c=95Pomocné struktury a data lze komprimovat přímo v kódu. Jak na to. A má to vůbec smysl?ondra-novak@email.cz (Ondřej Novák)http://bredy.novacisko.cz/clanek95/2007-04-25+09%3A54%3A41 +0100http://bredy.novacisko.cz/?g=clanek&c=95#diskuze