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í
×
    dnes 01:44 | Pozvánky

    Přemýšlíte, jak začít prázdniny? Už v úterý 1. července se bude konat Virtuální Bastlírna, tedy online setkání bastlířů, techniků, vědců i akademiků, kde se ve volné diskuzi probírají novinky ze světa techniky, ale i jiných zajímavých témat.

    Za poslední měsíc jsme byli svědky plamenů několika raket. Zatímco malá raketa od Hondy se úspěšně vznesla a opět přistála, raketa od SpaceX se rozhodla letět všemi směry najednou. Díkybohu méně … více »
    Uprdkávač | Komentářů: 0
    včera 23:44 | Komunita

    Linus Torvalds zmínil, že souborový systém Bcachefs zřejmě odstraní z mainline Linuxu v začleňovacím okně pro vydání 6.17. Kent Overstreet mu totiž posílá kód s novou funkcionalitou i pro začlenění do kandidátů na vydání, kdy očekává pouze opravy chyb. Ken Overstreet byl již dříve z vývoje vyloučen kvůli konfliktní komunikaci.

    Fluttershy, yay! | Komentářů: 0
    27.6. 11:55 | IT novinky

    Ministerstvo průmyslu a obchodu propaguje Microsoft. Ten ve spolupráci s Ministerstvem průmyslu a obchodu spouští AI National Skilling Plan v ČR. "Iniciativa Microsoftu přináší konkrétní a praktickou podporu právě tam, kde ji nejvíc potřebujeme – do škol, firem i veřejné správy.", říká ministr průmyslu a obchodu Lukáš Vlček.

    Ladislav Hagara | Komentářů: 25
    27.6. 10:55 | Zajímavý projekt

    Jste český ISP? Vyplněním krátkého dotazníku můžete pomoci nasměrovat vývoj nové generace routerů Turris Omnia [𝕏].

    Ladislav Hagara | Komentářů: 4
    27.6. 01:33 | IT novinky

    Celkové tržby společnosti Canonical za rok 2024 byly 292 milionů dolarů (pdf). Za rok 2023 to bylo 251 milionů dolarů.

    Ladislav Hagara | Komentářů: 1
    27.6. 01:22 | Nová verze

    Byla vydána verze 1.88.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    27.6. 01:11 | Nová verze

    Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 6.17. Mimo jiné aktualizuje Tor Browser (14.5.4) a opravuje několik chyb.

    Fluttershy, yay! | Komentářů: 0
    26.6. 21:11 | Nová verze Ladislav Hagara | Komentářů: 0
    26.6. 13:11 | IT novinky

    Město Lyon posiluje svou digitální suverenitu a postupně nahrazuje software od společnosti Microsoft bezplatnými alternativami, zejména OnlyOffice pro kancelářské aplikace a Linux a PostgreSQL pro systémy a databáze.

    Ladislav Hagara | Komentářů: 9
    26.6. 11:44 | Zajímavý projekt

    Evropská občanská iniciativa Stop Destroying Videogames se snaží o to, aby vydavatelé, kteří spotřebitelům v Evropské unii prodávají videohry nebo na ně udělují licence, měli povinnost tyto hry ponechat ve funkčním (hratelném) stavu i po ukončení podpory ze své strany. Podpořit podpisem tuto iniciativu můžete v Systému pro online sběr podpisů.

    trekker.dk | Komentářů: 5
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (28%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 330 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    C++ R-Value references

    18.12.2023 19:57 | Přečteno: 728× | Hardware | poslední úprava: 18.12.2023 19:57

    Na niektoré novinky C++ sa zvyká ľahko, napríklad std::function, std::span, std::string_view, concepts, pretiahnuté (Slováci, nesmejte sa) pipe operátory, coroutines atď., ale sú veci, pre ktoré nachádzam v praxi využitie len ťažko. Napr. std::move alebo r-value referencie. Vždy, keď ma napadne použiť napr. std::move, tak to vlastne ani nemá moc veľký zmysel. Pri návratových hodnotách to optimalizuje kompilátor používajúci RVO a keď tam použijem move sémantiku, tak by som správnej optimalizácii mohol skôr zabrániť zabrániť.

    Ako si viem predstaviť, kde sa to preúvanie asi oplatí používať, napríklad pri práci s veľkými kontainermi, polami, teda najmä s grafikou, alebo možno pri sortovacích a vyhľadávacích algoritmoch. Párkrát som to aj použil, ale väčšinou to bola zbytočná optimalizácia, ktorá ušetrila možno jednu milisekundu. Neviete mi ukázať nejaké konkrétne prípady z reálneho sveta? Keď už mám ten C++ k dispozícii a iné jazyky túto vlastnosť nemajú (pozn: tak možno ešte Carbon a Rust??? ale o tom nemám info). Tak nech túto vychytávku využijem aspoň v jazyku, kde je to podporované.

           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    18.12.2023 20:07 Hawkix
    Rozbalit Rozbalit vše Re: C++ R-Value references
    1000x milisekunda je sekunda.
    18.12.2023 20:59 nadtržítko
    Rozbalit Rozbalit vše Re: C++ R-Value references
    Ja zas vim ze nejerotictejsi velicina ve fyzice je "na.nose.kunda: :-D
    18.12.2023 21:09 fAleš
    Rozbalit Rozbalit vše Re: C++ R-Value references
    A víte jak se ve východním hantecu řekne nanosekunda? Kapíča!
    19.12.2023 09:12 Want
    Rozbalit Rozbalit vše Re: C++ R-Value references
    Aby tě nesežrala závist kapoune.
    18.12.2023 20:25 Erbureth | skóre: 21
    Rozbalit Rozbalit vše Re: C++ R-Value references
    Důležité využití je, že se tím dá spravovat ownership paměti - např. std::unique_ptr se bez move sémantiky nedal implementovat.
    19.12.2023 15:49 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: C++ R-Value references
    Neviete mi ukázať nejaké konkrétne prípady z reálneho sveta?
    Kromě výkonu a zmíněného unique_ptr je move občas užitečný na přesunutí různých RAII guards z jednoho místa na jiné, např. zamčené zámky, otvřené soubory apod.
    pozn: tak možno ešte Carbon a Rust??? ale o tom nemám info
    Rust nemá r-value reference, protože je nepotřebuje, move sémantiku podporuje přímo kompilátor, což je lepší v tom, že kompilátor zajistí, že přesunutou hodnotu nemůžeš na původním místě znova použít.

    V Rustu je move default, v C++ je default kopie. Tj. kód foo.bar(baz); v Rustu bude move, v C++ kopie hodnoty baz. V C++ je potřeba explicitně provést move pomocí std::move(baz), v Rustu je potřeba explicitně udělat kopii pomocí baz.clone().

    V Rustu je také možné přesouvat jakékoli typy, ne pouze ty, které to podporují díky správným konstruktorům. Druhá strana téhle mince je, že když je potřeba move zabránit, dělá se to trochu nešikovně přes Pin wrapper a projekce.

    Založit nové vláknoNahoru

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