#58 vitamin
No je to jasný offtopic, ale když člověk čte, co tu Kit uvádí za tvrzení, tak se to nedá prostě vydržet a neopravit to. Kit prostě tvrdí, že gc v c# a asi i v jave a RIIA v c++ jsou prostě špatně a jediné kde je to "dobře" je PHP. A vůbec neřeší otázky výkonu atd.
Ale abych citoval přesně Kita:
RAII je jen taková berlička, která by fungovala dobře, kdyby v C++ fungovaly destruktory tak jak mají.
Prostě ultra nesmysl. V c++ fungují destruktory jak mají, je tam prostě víc možnost:
- automatická správa paměti pro objekty na zásobníku, static a extern objekty.
- manuální správa paměti pro objekty na haldě,
- atuomatická správa paměti na haldě pomocí chytrých ukazatelů (reference counting) a
- je možné použít i GC, ale c++ myslí definuje jenom interface a není tam konkrétní implementace GC.
RIIA potom není jenom otázka správy paměti, ale doporučený postup pro exception-safe resource management v c++ a dalších jazycích, kdy každý resource má mít svůj handler na zásobníku a využívá se toho, že objekty na zásobníku se uvolní i v případě vyjímky a zavolá se desktruktor.