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 02:22 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 15.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Pozvánky

    Současně se SUSECON 2026 proběhne příští čtvrtek v Praze také komunitní Open Developer Summit (ODS) zaměřený na open source a openSUSE. Akce se koná ve čtvrtek 23. 4. (poslední den SUSECONu) v Hilton Prague (místnost Berlin 3) a je zcela zdarma, bez nutnosti registrace na SUSECON. Na programu jsou témata jako automatizace (AutoYaST), DevOps, AI v terminálu, bezpečnost, RISC-V nebo image-based systémy. Všichni jste srdečně zváni.

    lkocman | Komentářů: 1
    včera 15:44 | Humor

    Český úřad zeměměřický a katastrální zavedl u anonymního nahlížení do katastru nemovitostí novou CAPTCHA ve formě mapové puzzle: nepřihlášení uživatelé musí nově správně otočit devět dlaždic v 3x3 poli tak, aby dohromady daly souvislý obrázek výseče reálné mapy, přičemž na to mají pouze jeden časově omezený pokus. Test je podle uživatelů i odborníků příliš obtížný a na sociálních sítích pochopitelně schytává zaslouženou kritiku a

    … více »
    » FIDESZ🧡! « | Komentářů: 10
    včera 15:33 | Nová verze

    Byla vydána verze 1.95.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
    včera 15:22 | Zajímavý software

    Mozilla prostřednictvím své dceřiné společnosti MZLA Technologies Corporation představila open-source AI klienta Thunderbolt. Primárně je určený pro firemní nasazení.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | IT novinky

    Firma Cal.com oznámila, že přesouvá svůj produkční kód z otevřeného do uzavřeného repozitáře z důvodu bezpečnostního rizika umělé inteligence, která prý dokáže vyhledávat a zneužívat zranitelnosti rychleji, než by je jejich vývojářský tým stíhal opravovat. Zároveň zveřejnila samostatnou, open-source verzi Cal.diy pod licencí MIT, ovšem bez řady původních funkcí. O tom, zda je toto opatření rozumné, existují pochyby. … více »

    » FIDESZ🧡! « | Komentářů: 6
    včera 13:55 | Nová verze

    Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.04. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    15.4. 23:00 | Nová verze

    Kryptografická knihovna OpenSSL byla vydána v nové verzi 4.0. Přehled změn v souboru CHANGES.md na GitHubu. Odstraněna byla podpora SSLv2 Client Hello a SSLv3. Ve výchozím nastavení byla zakázána podpora odmítnutých eliptických křivek v TLS dle RFC 8422. Přibyla například podpora Encrypted Client Hello (ECH, RFC 9849).

    Ladislav Hagara | Komentářů: 0
    15.4. 20:55 | Komunita

    curl up 2026, tj. setkání vývojářů a uživatelů curlu, proběhne opět v Praze. O víkendu 23. a 24. května v Pracovně.

    Ladislav Hagara | Komentářů: 0
    15.4. 15:55 | IT novinky

    Aplikace pro ověřování věku uživatelů on-line platforem je technicky hotová a brzy bude k dispozici pro občany EU, oznámila dnes předsedkyně Evropské komise Ursula von der Leyenová. Půjde podle ní o bezplatné a snadno použitelné řešení, které pomůže chránit děti před škodlivým a nelegálním obsahem. Aplikace bude podle ní fungovat na jakémkoli zařízení a bude zcela anonymní.

    Ladislav Hagara | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1342 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    WTF C++ 20? Pomenované parametre

    21.10.2023 23:44 | Přečteno: 1389× | Hardware | poslední úprava: 22.10.2023 13:01

    Prečo s GCC viem skompilovať tento kód:

    class test_class_text
    {
    private:
        std::string _switch_pin;
    public:
        test_class_text(const std::string& switch_pin) :
            _switch_pin(switch_pin)
        {
    
        }
    };
    
    
    auto obj = test_class_text({ .switch_pin = "Lorem ipsum..." });
    a tento už nie?
    class test_class_int
    {
    private:
        int _switch_pin;
    public:
        test_class_int(const int& switch_pin) :
            _switch_pin(switch_pin)
        {
    
        }
    };
    auto obj = test_class_int({ .switch_pin = 5 });
    je už neskoro večer možno som unaveny a niečo som priehliadol, ale fakt nechapem prečo to so stringom funguje a s intom už nie?        

    Hodnocení: 50 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    » FIDESZ🧡! « avatar 22.10.2023 02:07 » FIDESZ🧡! « | skóre: 42 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre

    si nedal celej příklad takže nevíme co tam čaruješ, předpokladam že to máš asi jako takle nějak:

    #include <string>
    class test_class_text
    {
    private:
        std::string _switch_pin;
    public:
        test_class_text(const std::string& switch_pin) :
            _switch_pin(switch_pin)
        {
     
        }
    };
    
    
    class test_class_int
    {
    private:
        int _switch_pin;
    public:
        test_class_int(const int& switch_pin) :
            _switch_pin(switch_pin)
        {
     
        }
    };
    
    int main()
    {
    auto obj = test_class_int({ .switch_pin = 5 }); 
    auto obj2 = test_class_text({ .switch_pin = "Lorem ipsum..." });
    return 0;
    }
    
    

    noa se mi jako zdá že tam neni problém s tou třídou co dělá s intem ale s tou co dělá se stringem, páč v konstruktoru 'test_class_text' vidim že chce referenci/vodkaz na string zatimco ty tam zkoušíš narvat const char * "Lorem ipsum" :D ;D

    když si to jakoby zkusíme zkompilovat uděláním 'g++ -std=c++20 main.cpp' tak nám to asi jako zanadává

    main.cpp: In function ‘int main()’:
    main.cpp:30:64: error: call of overloaded ‘test_class_text(<brace-enclosed initializer list>)’ is ambiguous
       30 | auto obj2 = test_class_text({ .switch_pin = "Lorem ipsum..." });
          |                                                                ^
    main.cpp:7:5: note: candidate: ‘test_class_text::test_class_text(const string&)’
        7 |     test_class_text(const std::string& switch_pin) :
          |     ^~~~~~~~~~~~~~~
    main.cpp:2:7: note: candidate: ‘test_class_text::test_class_text(const test_class_text&)’
        2 | class test_class_text
          |       ^~~~~~~~~~~~~~~
    main.cpp:2:7: note: candidate: ‘test_class_text::test_class_text(test_class_text&&)’
    

    ..a zanadávalo :D :D Vyřešit to mužem třeba tim že dotoho budem strkat dočasnej voběkt std::string

    auto obj2 = test_class_text({ .switch_pin = std::string("Lorem ipsum...") });

    takle to funguje ale netvrdim že to je nejvíc nejlepší řešení ňáký :D ;D pokud by v konstruktoru třidy 'test_class_text' nebyla ta reference tak by si to samo zavolalo konstruktor std::stringu ale takle tomu asi jako musime pomoct a vysvětlit cože po tom jakože chcem :O ;D

    btw si pleteš blog s poradnou a eště si to tady zaspamoval :O :D :D ;D

    Jendа avatar 22.10.2023 03:58 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre
    Ten duplicitní blogpost můžeš AFAIK smazat sám než tam někdo napíše komentář; pak to musí udělat admin.

    A taky prosím dej za první řádek (před první kód ideálně) <!--break-->, protože takhle kód vytekl do přehledu blokových zápisků a překáží to (barevné <pre> je tady roztažené na celou šířku a tluče se to s pravým sidebarem).
    22.10.2023 19:24 Petr
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre
    Přijde mi, že inicializace referencí na hodnotu s kratším lifetime není nejlepší nápad. Co to zkusit takto: test_class_int(const int switch_pin) : _switch_pin(switch_pin) {} ?
    » FIDESZ🧡! « avatar 22.10.2023 20:19 » FIDESZ🧡! « | skóre: 42 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre

    u čiselnejch proměnejch ten benefit předáváním referencí taky nebude ňák moc velkej, spiš zanedbatelnej :D ;D

    btw von to pak v tom konstruktoru stejně předává hodnotou (páč ty třídy si v proměný '_switch_pin' nedržej referenci ale sou to už normální proměný) nóó takže stačí by nám ta reference co se dotoho jakoby strká vydržela žít jenom po dobu volaní konstruktoru :O ;D

    skunkOS avatar 26.10.2023 09:50 skunkOS | skóre: 27 | blog: Tak nějak
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre
    U primitivních typů bude přínos reference oproti hodnotě nulovej. Je totiž jedno jestli se kopíruje "informace o referenci" (což je číslo) nebo se kopíruje samotné číslo. Buď jak buď.
    http://martinrotter.github.io
    26.10.2023 22:58 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre
    Přínos bude buď nulovej, anebo, v případě, že se to dané volání funkce nenainlajnuje, bude zápornej, protože indirekce navíc - hodnota se bude muset natáhnout z paměti.

    Porovnání.
    22.10.2023 21:19 tom
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre
    Protoze pro integer literal neexistuje adresa. Je to stejny, jako kdyby v kodu bylo int *a = &5;
    » FIDESZ🧡! « avatar 23.10.2023 00:52 » FIDESZ🧡! « | skóre: 42 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre

    nj akorátže až nato že mě se ten jeho kod (mirně dopras.. upravenej ale to dělaní s intem je jakoby uplně netknutý) podařilo zkompilovat a pustit :O :D

    #include <string>
    #include <iostream>
    
    class test_class_text
    {
    public:
        std::string _switch_pin;
    public:
        test_class_text(const std::string& switch_pin) :
            _switch_pin(switch_pin)
        {
     
        }
    
    
    };
    
    
    class test_class_int
    {
    public:
        int _switch_pin;
    public:
        test_class_int(const int& switch_pin) :
            _switch_pin(switch_pin)
        {
     
        }
    };
    
    
    int main()
    {
    auto obj = test_class_int({ .switch_pin = 5 }); 
    auto obj2 = test_class_text({ .switch_pin = std::string("Lorem ipsum...") });
    
    std::cout<<"co ma prvni vobekt: "<<obj._switch_pin<<std::endl;
    std::cout<<"co ma druhej vobekt: "<<obj2._switch_pin<<std::endl;
    
    return 0;
    }
    
    
    co ma prvni vobekt: 5
    co ma druhej vobekt: Lorem ipsum...
    
    25.10.2023 00:16 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre
    Nekorektní jsou ty příklady oba stejně, máš nejspíš neaktuální GCC. GCC v13 nevezme ani jeden, zahlásí chybějící initliazer-list konstruktor.

    Asi jsi chtěl spíš něco jako test_class_int obj2 = { .switch_pin = 5 }; ? To by ale ta třída musela být POD...
    » FIDESZ🧡! « avatar 25.10.2023 02:52 » FIDESZ🧡! « | skóre: 42 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: WTF C++ 20? Pomenované parametre

    mi to mý upravený jelo v gcc 10 s argumentem -std=c++20 ale netvrdim žeto je takle jakože dobře :O :O

    Založit nové vláknoNahoru

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