Dlouho očekáváný koncert je za mnou a já přináším čerstvé zážitky a dojmy. Jaký byl nakonec tento koncert? Vyplatilo se na něj zajít, nebo to byly vyhozené peníze? Začněme ale raději od začátku - co ale můžu prozdradit už teď, tak je, že z koncertu jsem byl nadšený :).
Je nezvratným faktem, že informatici většinu času pracují spíše duševně, než fyzicky (bušení do klávesnice a okolních věcí nepovažuji za součást pracovní náplně). A tak není (čas od času) na škodu změnit současnou činnost a jít se odreagovat k nějaké jiné práci. Samozřejmě, lze zvolit např. matematiku, ale to jsme zase tam, kde jsme byli - u myšlenkově namáhavé činnosti. Mnohem vhodnější bude nějaká práce, u které člověk nemusí příliš přemýšlet. Například...
Ač In Flames nepatří mezi mé nejposlouchanější kapely, tak na tyhle Švédy, hrající melodic death metal (i když současný styl je poněkud diskutabilní a možná bych to spíš viděl na alternative metal/metalcore) jsem se celkem těšil. Jelikož během svého turné k poslední desce (A Sense of Purpose) neopomněli ani Českou Republiku, takže jsem je mohl vidět na živo. Ač byl pátek odpoledne, tak cesta do Zlína byla pohodová - nejdelší byl asi výjezd z Brna na dálnici. Do Zlína jsem dojel kolem 18:00, zašel si na večeři a od 19:00 jsem byl připraven před bránou Masters of Rock Cafe :).
Oproti Java Generics či C# Generics (které jsou vlastně pouze typově parametrizované třídy) jsou šablony v C++ velice mocný nástroj - o tom určitě nikdo nepochybuje. Co se ale ví už méně, tak je to, že tento prvek jazyka C++ je turingovsky úplný (Turing-complete), čili, lidově řečeno, pomocí něj lze vyjádřit libovolný výpočet. Z toho plyne zajímavý důsledek, který bych chtěl uvést v tomto příspěvku.
Tentokrát bych něco rád napsal o mýtu, který říká, že makro NULL slouží pro psaní přenositelného kódu, protože ne všechny architektury musí mít "nulový ukazatel" s adresou 0, ale daná adresa může být např. 0xFFFFFFFF. Ačkoliv druhá část předchozí věty pravdivá může být, tak první část nikoliv. Na konci příspěvku ukážu, že použitím makra NULL lze dokonce přenositelnost v určitých případech zhoršit!
Schválně, zda o něm víte :-).
Tímto zahajuji další "seriál" týkající se jazyků C a C++. Chtěl bych v něm upozornit na některé skutečnosti, které si ne každý uvědomuje a také některé vlastnosti těchto jazyků, které nejsou příliš známé a nebo se jejich důležitost podceňuje, což mnohdy může vést k nečekaným problémům. Objeví se zde určitě i zajímavé vlastnosti či konstrukce a využití těchto jazyků, o kterých se obecně neví, že něco takového je v těchto jazycích možné. Dneska bych se chtěl podívat na standardy (a "standardy") těchto jazyků a jejich použití při zadávání projektů či zakázek, takže si trochu povrtáme v historii.
Tak jsem po kratší odmlce zpět a přináším další zajímavou úlohu z jazyka C++. Dnes se moc programovat nebude, ale o to víc bude třeba přemýšlet :). Ještě bych chtěl poznamenat, že úlohy budu přinášet nepravidelně podle toho, jak mě vyjde čas a zda mě něco zajímavého napadne nebo na něco narazím.
Nadpis asi zní divně, ale opravdu mě nenapadlo nic lepšího, co by vyjadřovalo obsah tohoto příspvěku :). Na konci roku 2008 jsem se zmínil o tom, že bych rád napsal samostatný příspěvek na téma výživy, sportování a souvisejícíh věcech. Nuže, je to tady.