abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 1
    včera 15:44 | IT novinky Ladislav Hagara | Komentářů: 2
    včera 13:55 | Komunita

    Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.

    Ladislav Hagara | Komentářů: 9
    28.4. 23:33 | Nová verze

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    28.4. 17:22 | Zajímavý projekt

    TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.

    Ladislav Hagara | Komentářů: 0
    28.4. 17:00 | Nová verze

    Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.

    Ladislav Hagara | Komentářů: 5
    27.4. 21:33 | Nová verze Ladislav Hagara | Komentářů: 0
    26.4. 23:00 | Komunita

    V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 485 hlasů
     Komentářů: 18, poslední 17.4. 12:41
    Rozcestník

    Největší změny v C++0x

    Danny Kalev ve svém článku, který vyšel na webu softwarequalityconnection.com, představuje nejvýznamnější novinky v C++0x označovaném také jako C++11. V novém standardu známého programovacího jazyka jsou mimo jiné lambda výrazy, automatická detekce typu, sjednocení syntaxe pro inicializaci proměnných, klíčové slovo pro null pointer, delegující konstruktory a podobně. Změny jsou také ve standardní knihovně – jsou to například funkce fungující jako množinové kvantifikátory nebo knihovna pro práci s vlákny.

    24.6.2011 22:12 | Tomáš Heger (geckon) | Zajímavý článek


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

    Komentáře

    Vložit další komentář

    stativ avatar 25.6.2011 08:35 stativ | skóre: 54 | blog: SlaNé roury
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jak já se na šiší podporu C++ 2011 těším. Je to mnohem lepší jazyk, než současná verze C++.
    Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
    25.6.2011 10:05 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    A přitom stále zpětně kompatibilní se současným jazykem C++.

    C++ nešel cestou Pythonu či Perlu, že vše změní už jen pro ten pocit, že to překopal.

    Osobně si myslím, že nejlepší cesta by v budoucnu byla sjednocení jazyků C a C++ do jednoho jazyka.
    25.6.2011 12:35 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Kdyby se to stalo, to už bych fakt kompletně přešel k D.
    25.6.2011 12:59 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To můžete i dnes.

    I když si myslím, že D nakonec umře.

    Ostatně, stejně se pořád zvyšuje podíl C++. U velkých projektů dříve, nebo později zjistíte, že v C už je to neudržitelné.

    Osobně není jediná objektivní výhoda C vůči C++ – zatím mi nikdo takovou nedokázal vyjmenovat. Pokud mám k dispozici na dané platformě jak C tak i C++ kompilátor – není jediný důvod, proč něco psát v C.

    Výhrady C programátorů, kteří se rekrutují spíše podle stylu „co vzniklo v unixu je dobré, i když je to sračka“ – postupně historicky zmizí.

    Navíc C++ je jednotné. C už stihl třetí normu a připravuje čtvrtou – a žádný zázrak to stále není. Přičemž stále existují platformy, kde je k dispozici jen první verze – proto třeba vim autor píše v K&R C.

    Za takových 20 let tak jako tak C stejně de facto zanikne. Oproti C nemá žádnou výhodu, vývoj v C je chybovější, pomalejší a dražší, než v C++ aniž by nabídlo cokoli jako plus. Jen mínusy. Buďto se bude výhradně používat většinově C++, nebo se C a C++ sloučí. Je to jen otázkou času, kdy skalní Céčkaři vymřou, či zestárnou.
    25.6.2011 13:07 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    Čím více a čím agresivněji se nějakému projektu předpovídá brzký zánik, tím déle obvykle přežije. Předpovídat zánik jazyku, který se pro účely systémového programování používá už 40 let a který po tu dobu své pozice (v této oblasti) stále posiluje, je poněkud odvážné…

    To, že tu někteří prezentují emocionální a argumentačně prázdné výpady proti C++, neznamená automaticky, že musíte reagovat stejným způsobem.

    25.6.2011 22:45 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    „Čím více a čím agresivněji se nějakému projektu předpovídá brzký zánik, tím déle obvykle přežije. Předpovídat zánik jazyku, který se pro účely systémového programování používá už 40 let a který po tu dobu své pozice (v této oblasti) stále posiluje, je poněkud odvážné…“

    Mimochodem, já tu i na abclinuxu předpovídal růst či pád různým technologiím i firmám. Roky nazpět je to tu jako důkaz v diskusích. Zatím jsem se ani jednou nespletl a nemám za sebou jediný omyl. Pohybuji se v IT už skoro 30 let a viděl jsem leccos. Pády nadějných technologií, stejně jako růst outsiderových. A viděl jsem i ty příčiny a celý děj.

    C rozhodně neposiluje.

    V poslední době čím dál více projektů z C přechází alespoň částečně na C++. Před časem to udělalo třeba i gcc.

    Ono de facto neexistuje C a C++, naprostá většina kompilátorů umí obojí, protože C je de facto velmi malou podmnožinou C++. Pokud dnes někdo udělá kompilátor, tak ho většinou nedělá jen pro C, ale umí skoro vždy oba jazyky.

    De facto C a C++ nejsou dva jazyky, ale jen ottéž na různém stupni vývoje. De facto existuje jen jeden jazyk – C/C++.

    Používání C postupně zaniká. Ten proces v minulosti nebyl, protože C++ je relativně mladé. Norma C++ přišla až v roce 1989, dalších několik let trvalo, než přišly kompilátory vyhovující normě. Následně se roky hledalo, jak efektivně implementovat v C++ výjimky – tedy natolik efektivně, aby rychlostí byl kód používající výjimky stejně rychlý jako ošetřování chyb jiným způsobem, což se nakonec podařilo. A pak byl rok někde kolem 1996 a C++ začínal startovat ve svém rozšíření. Zhruba až kolem roku 2000 si mnoho programátorů všimlo, že je to báječný jazyk pro úlohy, kde se dříve používalo C a dá se na něj rychle přejít.

    C++ dostalo do vínku začít jako extenze C. Takže C je jen dialektem maličké podmnožiny jazyka C++. Je zbytečné aby existovalo více dialektů téhož jazyka. Stejně jako mezi K&R dialektem a ANSI normou C postupně získalo vedení to druhé, pak současné C a C++ jsou jen dialekty a C++ začíná získávat pomalu vrch.

    Bohatě stačí, když někdo vezme velký projekt v C a překlopí ho do C++. Takový člověk po praktické ukázce už nikdy C upřednostňovat nebude – zejména pokud se předtím trápil s pokusy udržet velký projekt v C.

    „To, že tu někteří prezentují emocionální a argumentačně prázdné výpady proti C++, neznamená automaticky, že musíte reagovat stejným způsobem.“

    To je pravda.
    25.6.2011 22:59 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Obávám se, že asi každý žijeme v jiné realitě.
    25.6.2011 23:17 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To zcela určitě.

    Jsme toho názoru, že přežije Cobol, Fortran, i další.

    Stejně tak jako přežije C, ale jeho používání bude klesat v prospěch C++.

    Když jsem začínal s C a dělal v něm řadu let a pak vznikl jazyk C++ a já ho vyzkoušel – už nikdy jsem v C nechtěl dělat. To se bavím o době tak 20 a více let zpátky.

    Přitom jsem všechny své C moduly nemusel měnit, prostě jen je přeložit C++ kompilátorem a pokračoval v C++.

    C se drží hlavně z historické perspektivy. Jsou v tom prostě nějaké projekty z minula. Ale nikdo soudný dnes nebude začínat velký projekt v C – byl by blázen a nic by nezískal.

    C a C++ nejsou de facto jiné jazyky. C++ přebírá celý jazyk C jako svou součást (kromě pár drobností). Tudíž přechod je naprosto minimální problém. Zato efektivita vývoje v C++ je o řád výše.

    Nevím jak Vy, ale já růst používání C nepozoruji.

    Naopak pozoruji, že se vyčistily věci. C a C++ přišlo o projekty, které nepotřebovaly rychlost a tyto projekty se píší třeba v Javě, Pythonu, či řadou dalších jazyků. Ve zbylých případech si to dělí v zásadě C a C++ a tím, že projekty začínají, nebo přecházejí na C++.

    Proto jsem psal, že stejně logicky splyne C a C++ v jedno. A pokud ne, C++ to postupně převálcuje. Není důvod držet dva dialekty od stejné věci.
    25.6.2011 23:27 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Cool story, bro...
    25.6.2011 23:30 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Taky se loučím, stejně jako končím s příspěvky do této debaty.
    pavlix avatar 27.6.2011 11:54 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Už zase?
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    26.6.2011 20:30 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    protože C je de facto velmi malou podmnožinou C++
    Toto neni pravda, pomerne dost v praxi pouzivanych konstrukci z C nen soucasti C++. Prikladem budiz variadicka makra, otevrena pole a pokrocile literaly. Navic nektere konstrukce znamenaji v obou jazycich neco jineho.
    25.6.2011 14:56 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    C++ je relikt z doby, kdy kompilátory byly ještě v plenkách a programátoři potřebovali něco jednoduššího než C; nicméně postupně se to zvrhlo a dnes je C++ polovičaté rádoby high level řešení s otřesnou stále se nabalující standardní knihovnou a rostoucí tendencí přesouvat funkce z jazyka do knihovny a často duplikovat existující funkční C řešení (často i horší, např. streamy). Oproti tomu D nevypadá, že by mělo kdykoliv v blízké budoucnosti umřít a jeho použití roste; oproti C++ je daleko lépe navržený. Navíc předpovídat mu smrt, když finální specifikace verze 2 ještě ani není hotová - no comment.S C++ dělám, ale jen jako "C with classes" protože jinak je ten jazyk pro mě naprosto nepoužitelný.
    25.6.2011 17:03 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Haters gonna hate.
    25.6.2011 23:06 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    „C++ je relikt z doby, kdy kompilátory byly ještě v plenkách“

    Kdy prosím Vás byly kompilátory v plenkách?

    ---

    „a programátoři potřebovali něco jednoduššího než C“

    Jeden programátor potřeboval něco stejně rychlé jako C, jen na vyšší úrovni. A líbil se mu koncept Simuly, ale nelíbila její pomalost. Mimochodem, za svých studií jsem se se Simulou setkal také – je to úžasný a inspirující jazyk.

    ---

    „rostoucí tendencí přesouvat funkce z jazyka do knihovny a často duplikovat existující funkční C řešení“

    Což je zcela v pořádku. Existující C řešení je provedeno low level ve formě vhodné pro neobjektový jazyk strojové úrovně.

    Je třeba vybudovat knihovnu využívající možnosti jazyka C++, což C funkce nejsou.

    ---

    „Oproti tomu D nevypadá, že by mělo kdykoliv v blízké budoucnosti umřít a jeho použití roste; oproti C++ je daleko lépe navržený.“

    Jazyk D pravděpodobně bude jen krátkodobý.

    Koukejte, když Stroustrup koncipoval C++, dobře věděl, že kompatibilita s C a snadný přechod z C je naprostou nutností pro jeho rozšíření. C++ proto umí využívat C moduly na úrovni zkompilovaých modulů a přistupovat k nim.

    Jazyk D ovšem s C++ kompatibilní není. Aby mohl C++ nahradit, musel by mít nástroj, který by dokázal využít C++ moduly a snadno přejít. To je nutnost.

    Bohužel jazyk D nemá některé featury C++ a chybí mu nástroj pro automatickou konverzi C++ modulů do D.

    Z druhé strany, jazyk C++ bude existovat do té doby, dokud se nenajde vhodnější nástroj na niku, kde je králem. Jazyk D do ní příliš nezasahuje, ale spíše konkuruje vysokoúrovňovým funkcionálním jazykům, kde je D horším řešením oproti těmto jazykům.

    D také zrušil objektové pojetí C++ a dědičný styl přejal z Javy a funkcionálních jazyků.

    Sám jsem pečlivě studoval před lety manuál k D s tím, zda to bude lepší jazyk, než C++, ale neměl jsem ten pocit.

    Základní problém je, že C++ bylo navrženo pro řešení praktických úkolů. D je prostě navrženo aby se líbilo autorovi a byl „čistým jazykem“. A podle mých zkušeností jazyky navržené jako čisté a hlavně proto to prohrávají s časem.

    Něměl jsem pocit, že D řeší něco lépe, než řada existujících jazyků. Pokud budu potřebovat efektivitu a rychlost kódu, C++ poslouží lépe – kompilátory jsou optimalizovanější, než vše, co nabídne D. Featury C++ umožňují lépe optimalizovat a cílit. Když nebudu potřebovat rychlost a efektivitu kódu, pak nesáhnu ani po C++ ani po D, ale po vhodnějším vyšším jazyku.

    „Navíc předpovídat mu smrt, když finální specifikace verze 2 ještě ani není hotová - no comment.“

    Já mu nepředpovídám smrt, jen nezájem a zapomnění.

    „S C++ dělám, ale jen jako "C with classes" protože jinak je ten jazyk pro mě naprosto nepoužitelný.“

    C++ jako C s třídami neukáže ani 1% jeho efektivity. Ten jazyk umí daleko více.
    25.6.2011 23:10 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Co máte proti elementu blockquote?
    25.6.2011 23:19 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jenom to, že když použiji jakýkoli element, musím pak nabouchat milióny dalších. Například poctivě označit odstavce elementem p – tudíž použitím jednoho elementu musím oelementovat všechno. Lenost vítězí.
    pavlix avatar 27.6.2011 11:56 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jenom to, že když použiji jakýkoli element, musím pak nabouchat milióny dalších. Například poctivě označit odstavce elementem p – tudíž použitím jednoho elementu musím oelementovat všechno.
    Nojo, v předpovídání budoucnosti jste ještě neměl jediný omyl... ale blockquote používat neumíte a místo toho plácáte něco o odstavcích, než abyste to úplně normálně vyzkoušel a zjistil, že to co píšete, je nesmysl.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    25.6.2011 23:14 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    "Jazyk D ovšem s C++ kompatibilní není. Aby mohl C++ nahradit, musel by mít nástroj, který by dokázal využít C++ moduly a snadno přejít. To je nutnost. "

    není vůbec potřeba konvertovat existující projekty, ale zajistit ABI kompatibilitu, což D má.

    "Bohužel jazyk D nemá některé featury C++"

    které?

    "D také zrušil objektové pojetí C++ a dědičný styl přejal z Javy a funkcionálních jazyků."

    to je naprosto v pořádku a správný krok.

    "Základní problém je, že C++ bylo navrženo pro řešení praktických úkolů."

    od kdy? Právě D je navrženo k praktickému použití, oproti C++, a proto netrpí některými mouchami C++ (píšu pro ábíčko seriál o D, vše bude popsáno)

    "Něměl jsem pocit, že D řeší něco lépe, než řada existujících jazyků."

    rozhodně lépe než C++, což je jeho cílem.

    "C++ jako C s třídami neukáže ani 1% jeho efektivity."

    možná ještě metaprogramming a operator overloading se občas hodí, ale stdlib, encapsulation, exceptions a spousta věcí z nové 0x specifikace je naprosto otřesných.

    25.6.2011 23:29 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    „není vůbec potřeba konvertovat existující projekty, ale zajistit ABI kompatibilitu, což D má.“

    Nemá. Musíte jí tvrdě naprogramovat – bavíme se o kompatibilitě s C++.

    ---

    „to je naprosto v pořádku a správný krok“

    Pak ale je lépe použít přímo tu Javu, ze které to bylo opsáno. Nebo funcionální jazyk s mixins, jako třeba Ruby.

    ---

    „od kdy? Právě D je navrženo k praktickému použití, oproti C++, a proto netrpí některými mouchami C++“

    Při čtení dokumentace D jsem získal pocit, že na praxi se zapomnělo. Že jazyk D je navržen jako soubor nesplněných přání autora kompilátoru. Nicméně je to další jazyk v řadě, kde předností byla teoretická čistota před praktičností. Autor se tím ani nijak zvlášť netají. A na jazyce je to znát.

    ---

    „rozhodně lépe než C++, což je jeho cílem“

    Nemám ten pocit. Ačkoli dokážu měnit jazyky jako ponožky, po seznámení se s D jsem velmi rád zůstal u C++ a D dále nerealizoval.

    Nicméně bavíme se teď na úrovni subjektivních pocitů.

    ---

    „možná ještě metaprogramming a operator overloading se občas hodí, ale stdlib, encapsulation, exceptions a spousta věcí z nové 0x specifikace je naprosto otřesných“

    Pokud nesnášíte C++, pak vám prostě ten jazyk bude otřesný. Více to nemá smysl rozebírat.

    25.6.2011 23:45 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    vezměme v potaz třeba tohle: http://ideone.com/sdPBZ Tento malý test dokazuje, že encapsulation v C++ je defektivní, protože to lze naprosto snadno obejít (díky tomu, že class v C++ je stále obyčejná struktura ve které lze použít offset)

    nebo iostream - co je lepší?

    std::cout << foo << " bah " << meh << " blah " << std::endl;

    které je naprosto nepoužitelné při i18n/l10n, je delší a vypadá hnusně

    nebo

    printf("%i bah %f blah\n", foo, meh);

    který je naprosto bez problému?

    Argument "type safety" jsou kecy, buď je kód správně nebo blbě a to, že si někdo neumí správně ověřit parametry není můj problém.

    V porovnání s D:

    co je lepší?

    string a = "hello world";

    string b = a.substr(0, 5); // hello

    nebo

    char[] a = "hello world".dup;

    char[] b = a[0 .. 5]; // hello

    co je lepší?

    std::map<string, int> mymap;

    mymap.insert(std::pair<string, int>("foo", 5));

    nebo

    int[string] harr;

    harr["foo"] = 5;

    ?

    takhle by se dalo pokračovat do nekonečna..

    25.6.2011 23:54 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    U prvního příkladu jste taktně zamlčel, že zatímco C++ streamy a operátor << můžete rozšířit na libovolnou třídu, u printf() to nejde (o dalších lahůdkách jako např. automatické překódování škoda ztrácet řeč). U druhého příkladu mi ten rozdíl nepřipadá tak velký, aby to byl nějak relevantní argument. Třetí příklad je podvod, protože i v C++ můžete napsat mymap["foo"] = 5.
    25.6.2011 23:56 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ono stačí si pro svou třídu napsat metodu, která vyplivne výstup pro printf .. a zůstane i funkční i18n ;-)
    26.6.2011 13:42 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    vezměme v potaz třeba tohle: http://ideone.com/sdPBZ Tento malý test dokazuje, že encapsulation v C++ je defektivní, protože to lze naprosto snadno obejít (díky tomu, že class v C++ je stále obyčejná struktura ve které lze použít offset)
    tohle je ukazka naprosto pokrivenyho mysleni. Encapsulation by melo chranit proti chybam a spatnymu pouziti, ne proti lidem. To ze kdyz se nekdo bude umyslne snazit to porusit tak se mu to povede je spis vyhoda...
    26.6.2011 13:53 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    26.6.2011 14:19 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    to je skoro stejně zvrhlá myšlenka jako type safety.
    andree avatar 26.6.2011 18:08 andree | skóre: 39 | blog: andreeeeelog
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    vtipny ten priklad... to autor cakal ze dostane segfault, ci co? alebo ze kompiler zrandomizuje pamat a/alebo rozhadze objekt cez cely heap?

    celkom by som sa pobavil, keby nastavil tu class na static, a kompilator mu vypisal 5, 10, 15... ako dlho by sa chytal za hlavu, co sa deje.. :)
    26.6.2011 19:40 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    no comment .. "kdyby" a předpovídání - klasický argument C++ fanboys.
    26.6.2011 20:48 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Až na to, že předřečník má naprosto pravdu.
    Opravdu mi není jasný, čemu se divíš na tom, že na classes funguje offset.
    26.6.2011 21:31 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale já se tomu přece nedivím :-) Class je přece furt jenom struct.
    andree avatar 27.6.2011 07:52 andree | skóre: 39 | blog: andreeeeelog
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    tak to si objavil ameriku, gratulace! .-)
    26.6.2011 00:00 dejvik | skóre: 12 | blog: vysatost
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    píšu pro ábíčko seriál o D, vše bude popsáno

    Skvělé! Už se těším:) Doufám, že to bude spíše o D2.

    26.6.2011 00:05 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ano, je o D2 :-) D1 se už vůbec nezabývám.. a samozřejmě s knihovnou Phobos.
    26.6.2011 00:32 Aminux
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Neni to ta dálnice. Jinak syntax c++ mi příde jako docela humáč. Jen můj osobní dojem.
    26.6.2011 00:43 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ona je humáč .. není to jen osobní dojem. :-D
    26.6.2011 01:49 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Že tě baví D ti neberu (mně se ten jazyk taky celkom zamlouvá), ale musíš tu furt trollovat C++? Tak když se ti to nelíbí tak to nepoužívej a nelez sem.
    26.6.2011 12:12 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    to jsi mě asi trochu nepochopil :-) Já C++ netrolluju, já kritizuju jeho mouchy, sám C++ používám pro svůj projekt a ono se dá použít, ale jen jako "C with classes" .. ony ty "špatné" části jsou většinou jen volitelné, takže se dají "nepoužít" a C++ může být decentním jazykem.. :-)

    26.6.2011 15:28 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    No, tak jsem kouknul na github na octaforge, no a to je dost neuvěřitelné :-D Teda takhle, nechápej mě špatně, ten projekt celkem obdivuju, asi bych to neuměl napsat nebo se k tomu minimálně nedokopal, ale teda ten kód, to je docela humus :-D To už by asi bylo lepší to čistý C.

    A mimochodem co takhle boost, proti tomu taky něco máš, předpokládám...?
    26.6.2011 15:58 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    většina kódu není moje :) resp. moje není src/engine, src/fpsgame, src/intensity a postupně ty části přepisuju. :-) Btw, po odstranění Boostu se 2x zkrátila kompilační doba a po odstranění Boost.Python dvakrát narostly FPS (díky odstranění Python actionqueue)
    26.6.2011 16:14 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jo aha, tak já koukal do src/engine...
    No tak že boost zpomaluje kompilaci a python fps, to je celkem jasné ;-)
    26.6.2011 16:17 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    mimochodem, i když se ti Cube 2 kód může zdát trochu takový zabordelený bez nějaký struktury, tak je oproti tomu velice efektivní a malý - je menší než většina ostatních enginů bez nějakých funkčních omezení. :-)
    26.6.2011 16:05 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    jojo, uznávám že některý části Cube 2 jsou dost humus, jako třeba některý makra: https://github.com/quaker66/OF-Engine/blob/master/src/engine/octaedit.cpp#L1141
    26.6.2011 20:54 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ale tak což o to, konkrétní podrobnosti v kódu jsem nezkoumal, spíš ta celková struktura kódu. C++ to rozhodně není, a ani "C with classes". Spíš "C with namespaces and constructors" :-D A proč máš takovýho kódu v hlavičkovejch souborech? Přijde mi, že tam prakticky nerozlišuješ mezi .h a .cpp.
    Bystroushaak avatar 27.6.2011 14:24 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    píšu pro ábíčko seriál o D, vše bude popsáno
    Wow, super :)
    26.6.2011 03:00 jas | skóre: 13 | blog: blag
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    A preto napr. toto ide v c++0x stale skompilovat, ze?

    int main(){ auto int x = 5; return x; }

    Videli ste vobec tie zmeny v pythone? Zmeny su aspon navonok relativne male a aspon velka cast z nich svoj vyznam urcite ma.

    Navyse s trochou snahy sa da pisat kod pre obe verzie pythonu.

    pavlix avatar 27.6.2011 11:53 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    C++ nešel cestou Pythonu či Perlu, že vše změní už jen pro ten pocit, že to překopal.

    Python naštěstí tou cestou šel, měl hodně restů, které nešly v 2.x verzi opravit.
    Osobně si myslím, že nejlepší cesta by v budoucnu byla sjednocení jazyků C a C++ do jednoho jazyka.
    Apage satanas. Naštěstí nám ale céčko zůstane :).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Josef Kufner avatar 25.6.2011 10:32 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Hmm... ta syntaxe je pěkně ošklivá. Trošku mi to připomíná hovniválovu kuličku.
    Hello world ! Segmentation fault (core dumped)
    25.6.2011 12:32 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale vždyť to je C++ .. furt se na to nabalují nový věci i když to, co leží pod tím, stojí za h*vno, a kvůli tomu i ty nabalovaný věci jsou udělaný hnusně/polovičatě..
    25.6.2011 11:51 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Furt jen nevím jak si poradit s nullptr, když konečně existuje a nemusí se myslet na možné problémy spojené s NULL, protože je až v GCC 4.6 (používám 4.4), tak jak si to nachystat, udělat si vlastní NULL jako #define MyNULL NULL a v budoucnu to pak jen přehodit #define MyNULL nullptr a třeba si podivit co se stane :-).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.6.2011 11:57 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    #undef NULL #define NULL nullptr

    Ale i ve starém C++ šlo udělat

    template<T> T* null_ptr() { return reinterpet_cast<T*>(0); }

    což se používá trochu hůře, ale je to navíc i typově bezpečné.
    26.6.2011 13:17 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    #undef NULL #define NULL nullptr - to mi přijde docela silné, raději bych nullptr viděl jen tam kde se s tím počítalo.
    template<T*> T* null_ptr() { return reinterpet_cast<T*>(0); }, to už je dál než jsem ochoten zajít :-).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.6.2011 12:09 zeno
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Take nepodarene lambda expressions som este nevidel.
    25.6.2011 12:48 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Mě na tom nepřijde nic nepodařeného.

    Možná by bylo dobré si uvědomit, co je C++. Je to jazyk, jehož přední úlohou je zajistit rychlost + efektivitu výsledné binárky a rozsah možností programátora srovnatelné (tedy co nejvíce blízké) s přímým psaním ve strojovém kódu. Za současné vysoké efektivity psaní kódu a high level jazyka.

    Druhá věc je, že C++ – stejně jako všechny stálice v programovacích jazycích – nesleví ani čárku ve zpětné kompatibilitě s předchozí verzí. Pokud by se měla porušit zpětná kompatibilita – bylo by třeba pro to velmi vážného důvodu a vysvětlení a toto porušení by muselo vynést tak obrovský benefit, aby vůbec prošlo, že je to na hranici nemožnosti.

    Nakonec stejně většina vyšších jazyků je implementována pomocí C/C++, kde C je spíše historický sekundand z doby, kdy C++ nemělo standard. Stejně tak všechny virtuální mašiny pro běh virtuálního kódu se také skoro bez výjimky implementují v C++.

    Když nějaký vyšší jazyk nestačí svými možnostmi – ať už rychlostně, nebo proto, že v daném vyšším jazyce není vůbec možné danou funkcionalitu implementovat – zase se to napíše v C/C++. Většina vyšších jazyků stejně z 99% není nic jiného, než kompilovaný kód C/C++ a kolem toho něco málo lepidla z kódu vyššího jazyka – asi maximálně je to vidět u Pythonu.
    Josef Kufner avatar 25.6.2011 12:56 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To však nemění nic na tom, že ten zápis je děsně ošklivej.
    Hello world ! Segmentation fault (core dumped)
    25.6.2011 13:00 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Jako subjektivní vnímání pro Vás. Když už nemůžete proti tomu nic věcného říci, začnete si pomáhat dojmy.
    Josef Kufner avatar 25.6.2011 13:23 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Já proti tomu neřekl nic než to, že je ta syntaxe děsně ošklivá. Jinak lambda samotná se mi líbí a považuju ji za jednu z nejužitečnějších konstrukcí vůbec. Ale tahle v C++ je ošklivá.
    Hello world ! Segmentation fault (core dumped)
    25.6.2011 14:19 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    sam ses osklivej...
    25.6.2011 14:57 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale on má pravdu.
    25.6.2011 15:20 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ne nema
    25.6.2011 15:30 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    ale jo, má :-D
    belisarivs avatar 25.6.2011 18:22 belisarivs | skóre: 22 | blog: Psychobláboly
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ja myslim, ze vsichni maji pravdu. Teda krome me. Takze zapomente, ze jsem neco rekl. :-D
    IRC is just multiplayer notepad.
    grubber avatar 25.6.2011 17:24 grubber | skóre: 6 | blog: grubber | Břeclav / Brno
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Domnívám se, že v této diskuzi publikuje největší množství subjektivních dojmů plných rádobyvěcné onanie nad svým oblíbeným jazykem někdo zcela jiný.
    25.6.2011 21:15 mnn | skóre: 1
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Neviem si pomôcť, ale čo sa týka lambda expressions, tak syntakticky je na tom lepšie C# 3.0, napriek tomu, že je od MS...
    25.6.2011 22:45 Freeman
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Rozumím tomu opravdu dobře, že v C++0x budu muset přizpůsobit názvy metod třídy abych ji mohl pohodlně iterovat? Tedy, budou to muset být begin() a end()?

    To je přece hrozné, že konstrukt jazyka foreach vyžaduje určité konkrétní pojmenování metody. Od toho jsou přece klíčová slova, ne? Sice to funguje se STL, ale kupodivu existují lidi, co STL nepoužívají. A nepoužívají ani STL konvenci pro pojmenování.

    Přijde mi to stejně ujeté jako by virtuální metody musely začínat písmenem v.
    25.6.2011 23:10 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Rozumím tomu opravdu dobře, že v C++0x budu muset přizpůsobit názvy metod třídy abych ji mohl pohodlně iterovat? Tedy, budou to muset být begin() a end()?
    Ne, neřekl bych, teda doufám.

    Jinak ale +1 k STL, imho koule na noze C++.
    25.6.2011 23:16 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    stdlib/STL je jedním z hlavních problémů jazyka C++.

    26.6.2011 14:04 solca
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Protoze?
    26.6.2011 14:16 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x

    pomalý kontejnery, streamy horší než v Cčku, pomalý stringy, nesourodý exceptions, debugování horší než v Cčku..

    26.6.2011 15:10 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Tu pomalost kontejnerů a stringů máš nějak podloženou, nebo to je subjektivní?

    Jinak s exceptions souhlasim a dodám, že jako hlavní problém stdlib/STL vidím nekompletnost / málo featur. A taky poněkud těžkopádné použití.
    26.6.2011 16:02 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Porovnával jsem vector/hashtable ze sauerbratenu s vector/unordered_map z stdlib a vyšly asi o 10% pomalejší, porovnával jsem char* a std::string a std::string a std::string byl asi 2x-3x pomalejší (pouze v některých operacích, jindy se v podstatě rovnají) .. testovací kód už nemám, ale nemyslím si, že by byl problém jej znovu napsat.
    26.6.2011 17:03 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    To, že jedna konkrétní implementace má pomalé některé algoritmy, je chyba standardní C++ knihovny?
    26.6.2011 19:44 ---- | skóre: 33 | blog:
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    to je pravda, i když GNU implementace je jedna z nejrozšířenějších :-)
    Luboš Doležel (Doli) avatar 25.6.2011 23:35 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    begin() a end() jsou docela dobře zavedené názvy. A osobně mi to připadá lepší, než komplikovat jazyk dalšími klíčovými slovy.
    27.6.2011 02:10 Erbureth | skóre: 21
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ale vůbec, pro procházení přes for_each() stačí, když třída přetěžuje operátor ++; metody begin() ani end() se tam vůbec nevolají, počátek a konec zadáváte jako parametry.
    27.6.2011 10:44 Boris Dušek | skóre: 22 | blog: everything
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    On podle mě nemluvil o funkci std::for_each z hlavičky algorithm, ale o v C++0x novém klíčovém slově foreach.
    vim ~/.emacs
    27.6.2011 10:59 Erbureth | skóre: 21
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Mea culpa, v článku se o tom nepíše...

    (Každopádně upřesnění by se hodilo, zvlášť, když to klíčové slovo není foreach, ale for s jinou syntaxí [1])
    27.6.2011 14:28 Jirka P.
    Rozbalit Rozbalit vše Re: Největší změny v C++0x
    Ne. Stačí, když poskytneš volné funkce begin(x) a end(x). Chtělo by to trochu číst ten draft.

    Jinak to není v programovacích jazycích nic nového ani divného, a že to někteří považují za "hrozné" je tak nějak jejich problém. Prostě nepoužívám danou konvenci => nemohu použít danou konstrukci. Rozhodně lepší, než zavádět jakákoli nová klíčová slova.

    Založit nové vláknoNahoru


    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.