76
Vývoj / Re:Automatické uvolňování paměti v c++
« kdy: 11. 01. 2017, 00:46:06 »Co brání v C++ tomu, aby byly do kódu vloženy automaticky řádky pro uvolnění již nevyužitelných zdrojů v čase kompilace? Je to pŘece deterministický úkol, až na nějaké speciální případy je známo, kde je potřeba paměť uvolnit. Proč to teda musí programátor psát ručně?Nic, tohle C++ dávno má, říká se tomu destruktor a překladač ho tam vkládá automaticky. Programátor jen napíše, jakým způsobem se ty zdroje úvolní
A z jiného soudku, proč má třeba Java ještě pořád GC, když uvolňování zdrojů lze předvídat už v čase kompilace? GC přece zbytečne spotřebovává paměť a čas procesoru, tak nač?Skutečně? Nejsem si jist.
Příklad kde to už existuje: Objective-C a Automatic References Counter.ARC fungují jen když sdílíte immutable objekty. Pak mohou být i MT Safe. Jakmile ale můžete dodatečně měnit linky v již vytvořených objektech, pak umíte vytvořit cyklus a ten ARC uvolnit neumí.
Mimochodem, ARC je i v C++. Buď shared_ptr, nebo se dá napsat jednoduché řešení s counterem uvnitř objektu. Oba systémy mají své výhody a nevýhody.

) - prostě není cílem něco prodávat, ale spíš demonstrovat technologii. Ale uznávám, že to může vypadat hezčí, jenže já jsem prostě programátor a ne grafik. Nicméně jak píšu, je to free na githubu a každou pěknou úpravu s radosti zamerguju a nasadím (a klidně dopíšu do credits autora, nebo spíš se tam může dopsat sám)