Odpověď na názor

Odpovídáte na názor ke článku SEH v Linuxu (C++).

  • 6. 9. 2012 8:10

    Ondřej Novák (neregistrovaný)

    [6] Pokud jde o standardní výjimky, tak v C++ máme destruktory, takže ten blok finally tam vůbec nemusí být, protože se použije právě nějaký chytrý ukazatel. A to je důvod, proč finally C++ nemá. Nicméně v normě C++11 jej lze elegantním způsobem nahradit: http://novacisko.blog.root.cz/2012/06/06/nahrada-finally-c-11/

    Pokud jde o SEH, tak ten v originálu (ve Windows) finally má. Kdybyste četl článek, tak víte, že tamn píšu, že mé řešení SEH v Linuxu finally neobsahuje a nechávám jeho implementaci jako námět k přemýšlení. Jedna z možností je ta, že jsem zavedl funkci __seh_throw, která na konci chráněného bloku __seh_try vyvolá umělou výjimku a takže blok __seh_except se provede vždy.

    Jenom připomínám, že zpracování signalu nepatří do standardní výbavy C++. Už proto, že jsou platformy, kde signály nejsou. Stejně tak je nutné se dívat na mou emulaci SEH. Jde jen o nadstavbu, nejde o vylepšování vlastního jazyka.