Portál AbcLinuxu, 25. dubna 2024 01:34

-

14.6.2015 18:14 | deleted | Výběrový blog | poslední úprava: 26.10.2021 01:24

-        

Hodnocení: 90 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

14.6.2015 21:36 txzn
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
Odpovědět | Sbalit | Link | Blokovat | Admin
Na první pohled to vypadá dost zajímavě. (Normální C++ STL je docela sračka.)
14.6.2015 22:35 ---- | skóre: 33 | blog:
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
dost věcí ještě chybí, nicméně základní design tam je a nejdůležitější komponenty jsou už aspoň z části tam...
14.6.2015 22:45 Ivorne | blog: Ivorne
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
V čem je STL sračka?

Nějaké konkrétní koncepční/implementační chyby?

O STL se zajímám, takže tohle by pro mě byla přínosná informace.
14.6.2015 22:55 ---- | skóre: 33 | blog:
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
stream API je dost hrůza třeba
15.6.2015 16:00 Jardík
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
Stream API není nejlepší (taky je hodně staré), ale hrůza to zas není. Pokud po vytvoření objektu nezapomenete zavolat exceptions() a nastavit tak výjimky, tak se o nic nemusíte starat a jenom načítat/zapisovat.
15.6.2015 15:09 ugh
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
Třeba v tom, že tam není nic jako filter/map z OctaSTD. Čachry s iterátorama.
15.6.2015 16:09 Jardík
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
Odpovědět | Sbalit | Link | Blokovat | Admin
Za odstranění rezervovaných identifikátorů pochvala. Jenom ale pořád nechápu tu potřebu reimplementovat standardní knihovnu kvůli ranges. Budete teď mít hlavně závislosti dvě. Závislost na standardní knihovně neodstraníte (např. operátor new vyhazuje std::bad_alloc, initializer list je daný std::initializer_list, typeid() vrací std::type_info const a jistě další věci) a budete záviset na dalších věcech (OctaSTD). Ale vynechejme to, je to vaše věc.

Jak je na tom OctaSTD s výjimkami? Garance apod. Dáváte na to pozor? Píšu-li náhradu standardní knihovny, měla by být nějak exception safe, jinak se stává prakticky nepoužitelnou.
15.6.2015 16:17 ---- | skóre: 33 | blog:
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
závislost na standardní knihovně není (mám vlastní implementace operátoru new, initializer listů apod - používají se, když se nepoužívá standardní knihovna), rtti a exceptions ignoruju (budu mít vlastní error handling pomocí option types apod.) - kód samotný by měl být většinou exception safe i tak, ale noexcept tam není (jen další věc na implementaci a dokumentaci, na což vážně nemám čas, zvlášť když to nevyužiju)
15.6.2015 19:04 Jardík
Rozbalit Rozbalit vše Re: OctaForge - OctaSTD update
Jen tak letmo procházím zdroják array.h. Pozor,
Size max_size() const { return Size(~0) / sizeof(T); }
Nemusí asi správně fungovat, když signed int není na dané platformě dvojkový doplněk (já vím, já vím, která není, že). Naopak Size(-1) bude fungovat vždy, kvůli jasně definovanému pravidlu pro převod signed na unsigned. Nebo lze použít ~Size(0)

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.