Nebylo by lepší se v ukázkách úplně vyhnout použítí "new"?
make_shared jsem v jedné našel, ale make_unique ne. A v textu se o nich vůbec nemluví.
Viz
- https://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique
- https://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared
Iba ako dodatok pre ďalšie štúdium: C++ má už dosť dlhý čas oficiálne stránky spravované poprednými členmi komunity, na ktorých je vypísané, čo je odporúčané a čo nie.
O ukazovateľoch je najviac asi tu: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#S-resource
To je taková finta harceru v C. Alokovat pole alespoň o 1 větší protože furt se najde někdo kdo zapomene že se indexuje od 0.
Ti z větší zkušenosti alokuji rovnou 2* len. No a pak jsou machři kteří s větou "dnes máme gigabajtů paměti" rovnou alokuji v násobcích 16384. ,
To pak je ten program fakt atabilnejsi.
Spíš ne. Finta je v tom, že v jednom okamžiku se láme jenom jeden odstavec a sestavuje se jenom jedna stránka, takže paměť na tyhle dvě základní věci je během zpracování furt ta samá a není potřeba ji uvolňovat a hned alokovat znova. Krom toho, TeX je napsaný v Pascalu, v něm se nedají používat nafukovací pole, aby si TeX mohl za běhu zvětšit pool, ve kterém ukládá makra (těch tedy během zpracování dokumentu přibývá).
Strategie "sněz, co můžeš" funguje dobře na domácím nebo kancelářském PC, kde si z hlavní činnosti odskočit "jinam" fakt nepotřebujete (on si někdo vyplňujete spreadsheet, kolik zastřelil vesmírnejch potvor?) nebo jste zvyklí strávit celý den v účetnicví, ále běda, když takový hladový účto spustíte odněkud z malé pojizerské vísky na windowsím terminálovém serveru někde v Belgii a vono sežere všechnu paměť, takže na ostatních terminálech už si nepustí ani notepad. Les merdes lítaly jak die Sch- Sch- Schwalben.
to by se chtelo podivat, jestli Web (jazyk - https://en.wikipedia.org/wiki/Web_(programming_system) vubec mel podporu pro malloc/free.