Témata označená nálepkou Pokročilé techniky

  • Automatická správa paměti deterministicky

    V souvislosti s uvedením nového Windows Runtime (WinRT) a faktem, že nemá garbage collector (GC), se vyrojila spousta pseudonázorů od „expertů“ na programovací jazyky. Pro rádobyprogramátory rozmazlené správou paměti v Javě či C# existují jen dva extrémy – GC a malloc/free. Jaký je však nejnovější trend ve Windows a Mac OS X (resp. iOS)?
    28. 9. 2011 11:23 (aktualizováno)
  • Podpora nového standardu C++ v překladačích

    Tentokrát jen krátce. Nedávno byl schválen nový standard C++11 (dříve provizorně označovaný C++0×), který kromě rozšíření syntaxe přidává užitečné třídy do standardní knihovny STL. Bohužel ne ve všech překladačích můžete využít vše, co nový standard nabízí. Clang (frontend pro LLVM) ve své nejnovější verzi nemá lambda výrazy. Místo nich má „bloky“ (proprietární uzávěry), které se ovšem kromě syntaxe drobně liší od normy i sémantikou…
    22. 9. 2011 9:26 (aktualizováno)
  • Časovač (timer) v C++11

    Nová verze STL přidává třídy pro práci s vlákny a časem. Zde je příklad jednoduchého časovače: #include <thread> #include <chrono> class timer { public: timer(int millis, const std::function<void()>& action) { std::thread t([](){ std::this_thread::sleep_for(std::chrono::milliseconds(millis)); action(); }); t.detach(); } };
    31. 8. 2011 21:24
  • Lambda výrazy v C++0x a bloky v LLVM

    Pokud píšete kód v C++ a používáte lambda výrazy, resp. bloky, mohou se vám hodit makra, která vás odstíní od rozdílů v syntaxi C++0× (nový standard C++) a LLVM (implementace Applu). Zatímco lambda výraz „x → x + 1“ se v C++0× píše [](int x){ return x + 1; } implementace Applu vypadá takto: ^(int x) { return x + 1; }
    2. 8. 2011 11:42 (aktualizováno)
  • Lambda výrazy, uzávěry, bloky

    Lambda výrazy (v některých jazycích označované jako uzávěry nebo bloky) se v posledních letech rozšířily do většiny moderních programovacích jazyků. Tento přehledový článek se věnuje některým aspektům jejich implementace a použití. Lambda výrazy jsou v mnohých jazycích literály, tj. jedná se o pevnou součást jazyka a lze je přiřazovat do proměnných, používat jako argumenty při volání funkcí či metod apod. Příkladem budiž zápis jednoduchého lambda výrazu v jazyce Scheme (dialekt Lispu)…
    25. 7. 2011 12:23 (aktualizováno)