Odpovídáte na názor ke článku Jaký jazyk jako první?.
[65] Některé důvody, kvůli kterým STL nepoužívám. Tím bych ale C++ nezatracoval.
1) Ty operátory používám taky, ale ve stylu print("Ahoj %1") << jmeno; (tzv feed operátor) - on je to vlastn2 jediný způsob, jak poslat nějakému objektu/funkci libovolné množství argumentů.
2) Nevím proč to tak je udělaný, ale je to pochopitelně blbost. Já používám:
XXX::Iterator iter = foo.getIterator();
while(iter.hasItems()) {
X bar = iter.getNext(); ...
}
3) Autoři téhle koncepce měli představu, že by existující programy, kde se používá iterování přes ukazatele zobecnili a z ukazatele udělali iterátor. Proto se iterátor chová jako ukazatel
4) dtto. Problém je v tom, že to je chybná úvaha. Měli naopak zvolit formu, kdy to jako ukazatel vypadat nebude a tím zbavit průměrnou programátorskou komunitu nutnosti učit se ukazatele.
5) Typedef uprostřed není problém. Hodně často to používám zvlášť u šablon, kdy je pro mě lepší nějaké šílené konstrukci vyplývající z použití šablon dát jednoduché jméno. Je to prostě alias k danému typu.
K bodům 1-4... taky jsem psal,buď STL, nebo nějakou výukovou knihovnu. Jako že jsou tu lidi, kteří na STL nedají dopustit, ale já osobně to považuju za disaster v normě C++ a každému doporučuju se tomu vyhnout (v praxi, teoreticky se vyplatí to znát). Další otázkou je, co tedy použít místo STL, tady vám neodpovím
Poznámka na okraj. C++ není STL. STL je jedna z milionů knihoven v C++ a její jedinou výsadou je, že je součástí C++ normy. Nahlížejte na ní jako na cosi co by se dalo přirovnat k nářadí, které dostanete přibalené k nábytku pořízeného v Ikea. Ten nábytek s tím postavíte, ale rozhodně nedoporučuju to používat v profesionální dílně.
Autor se zabývá vývojem kompilátorů a knihoven pro objektově-orientované programovací jazyky.
Přečteno 37 774×
Přečteno 26 420×
Přečteno 24 932×
Přečteno 21 278×
Přečteno 18 930×