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 16:33 | Zajímavý software

    Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.

    AfD 💙 | Komentářů: 1
    dnes 16:22 | Upozornění

    Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).

    Ladislav Hagara | Komentářů: 1
    dnes 13:33 | Humor

    Japonský Google rozšířil svou kolekci DYI fyzických klávesnic Gboard o klávesnici ve tvaru běžícího pásu. Proč se mají přesouvat ruce po klávesnici, když se mohou přesouvat klávesy k ruce? Pro zájemce je návod na sestavení včetně STL souborů pro 3D tisk a firmware k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.

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

    Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 1
    včera 16:00 | Komunita

    Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.

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

    Byla vydána nová verze 10.6 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Povoluje hybridní postkvantový podpisový algoritmus ssh-mldsa44-ed25519.

    Ladislav Hagara | Komentářů: 0
    včera 04:00 | Zajímavý software

    Americká společnost Reflection AI světu představila Beam, open-weight model s 501 miliardami parametrů (z toho 23 miliard aktivních), určený především pro programování a práci autonomních agentů. Podle autorů jejich model nabízí výkon srovnatelný s většími modely při výrazně nižších nárocích na výpočetní výkon. Beam nyní ještě prochází závěrečným testováním, na stránkách Reflection AI se však lze zaregistrovat a získat předběžný přístup. Váhy modelu, dokumentace a nástroje pro vývojáře mají být zveřejněny v průběhu tohoto měsíce.

    AfD 💙 | Komentářů: 0
    včera 02:00 | Komunita

    OpenCourant je komunitní fork OpenRadioss, tj. open source softwaru pro simulace havárií, nárazů a vysoce nelineárních dynamických dějů metodou konečných prvků. Společnost Siemens v loňském roce dokončila akvizici společnosti Altair Engineering, jež před čtyřmi lety uvolnila open source verzi OpenRadioss svého proprietárního softwaru Radioss. Minulý týden Siemens OpenRadioss pohřbil. Integroval jej do svého softwaru Simcenter, webovou stránku OpenRadioss přesměroval na Simcenter a repozitář OpenRadioss na GitHubu odstranil.

    Ladislav Hagara | Komentářů: 0
    včera 00:22 | Pozvánky

    Pořadatelé devátého ročníku komunitního setkání správců nejen českých a slovenských sítí – CSNOG 2027, které se uskuteční 20. a 21. ledna, vyhlásili Call for Abstracts. Náměty na vystoupení mohou zájemci přihlašovat do 31. října na webu akce a vybírat mohou ze tří sekcí – správa sítí, legislativa a regulace a akademické projekty. Zveřejněny byly také Call of Partners určené sponzorům a partnerům setkání, kteří by například chtěli mít na

    … více »
    VSladek | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2816 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: C++ Auto proxy class

    hermes avatar 1.7.2021 21:15 hermes | skóre: 7 | blog: Elektro | BA
    C++ Auto proxy class
    Přečteno: 529×
    Ahojte potreboval by som rozšíriť objekt (nie triedu) o pár metód. V dynamickom jazyku by sa to dalo naprasiť cez monkey patching. Staticky typované jazyky zase obsahujú extension metódy prípadne mixiny.

    Ale ako podobný problém riešiť v C++? Predstavujem si to tak, že by som urobil wrapper, ktorý by bol potomkom pôvodnej triedy a rozšíril ho o nové metódy. A do jeho vnútra, by som cez konštruktor nainjektoval pôvodný objekt.

    Ale potom by som musel wrapnúť aj všetky pôvodné volania metód, metódu po metóde. Ručne sa mi to prepisovať nechce. A keďže C++ podporuje metaprogramovanie myslím, že by sa to dalo nejako uľahčiť. Ale ako? Ako sa takéto problémy riešia v C++?

    Odpovědi

    1.7.2021 23:52 Jardík
    Rozbalit Rozbalit vše Re: C++ Auto proxy class
    Jakéhosi rozšíření lze docílit přes ADL, ale asi to nebude úplně ono. Řekněme, že máte nějakou třídu s metodou (mysum) a chceš takovou metodu implementovat pro jinou třídu, kterou NEMŮŽEŠ modifikovat (např. 3rdparty knihovna). Zároveň chceš třídu třeba předat jako template parametr.

    https://godbolt.org/z/T4f4TThYb
    namespace myns
    {
    
    struct myclass
    {
      int a() const { return 5; }
      int b() const { return 6; }
      int mysum() const { return a() + b(); }
    };
    
    // Enable ADL mysum call for myclass
    int mysum(const myclass& m)
    {
      return m.mysum();
    }
    
    }
    
    // -- 3rdparty knihovna --
    
    namespace thirdparty
    {
    
    struct thirdpartyclass
    {
      int abc() const { return 5; }
      int def() const { return 6; }
    };
    
    }
    
    // -- vlastni kod, implementovat mysum pro thirdpartyclass, musi byt ve stejnem namespace jako thirdpartyclass, aby fungovalo ADL
    
    namespace thirdparty
    {
    int mysum(const thirdpartyclass& t)
    {
      return t.abc() + t.def();
    }
    }
    
    // -- pouziti v template:
    
    namespace totalydifferentnamespace
    {
    template<class... T>
    int getSumOfSums(const T&... t)
    {
      return (mysum(t) + ...); // Zde se vyuzije ADL, zavola se metoda mysum z namespace, kde je kazda trida definovana
    }
    }
    
    int main()
    {
      myns::myclass mc;
      thirdparty::thirdpartyclass t;
    
      return totalydifferentnamespace::getSumOfSums(mc, t); // 11+11=22
    }
    
    2.7.2021 00:06 Jardík
    Rozbalit Rozbalit vše Re: C++ Auto proxy class
    DalŠí možností můŽe být třeba nějaký wrapper a specializace. Prostě záleží, co od toho čekáš.
    namespace myns
    {
    
    struct myclass
    {
      int a() const { return 5; }
      int b() const { return 6; }
      int mysum() const { return a() + b(); }
    };
    
    }
    
    // -- 3rdparty knihovna --
    
    namespace thirdparty
    {
    
    struct thirdpartyclass
    {
      int abc() const { return 5; }
      int def() const { return 6; }
    };
    
    }
    
    // -- 
    
    namespace totalydifferentnamespace
    {
    template<class... T>
    int getSumOfSums(const T&... t)
    {
      return (t.mysum() + ...); // Zde se vyuzije ADL, zavola se metoda mysum z namespace, kde je kazda trida definovana
    }
    }
    
    template<typename T>
    struct mysuminterface // not specialized
    {
        int mysum() const { return 0; }
    };
    
    // specialzed for myns::myclass
    template<>
    struct mysuminterface<myns::myclass> : myns::myclass
    {
        using myns::myclass::mysum;
    };
    
    // specialzed for thirdparty::thirdpartyclass
    template<>
    struct mysuminterface<thirdparty::thirdpartyclass> : thirdparty::thirdpartyclass
    {
        int mysum() const { return abc() + def(); }
    };
    
    int main()
    {
        mysuminterface<myns::myclass> mc;
        mysuminterface<thirdparty::thirdpartyclass> t;
        return totalydifferentnamespace::getSumOfSums(mc, t); // 11+11=22
    }
    
    
    hermes avatar 4.7.2021 19:06 hermes | skóre: 7 | blog: Elektro | BA
    Rozbalit Rozbalit vše Re: C++ Auto proxy class
    Diky :)
    AfD 💙 avatar 1.7.2021 23:59 AfD 💙 | skóre: 43 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: C++ Auto proxy class

    proč jakoby nestačí podědit nějakej trait a musí se 'hackovat' hotová instance?? :O :O

    hermes avatar 4.7.2021 18:51 hermes | skóre: 7 | blog: Elektro | BA
    Rozbalit Rozbalit vše Re: C++ Auto proxy class
    Ahojte, ďakujem Vám za odpovede idem si to prelúskať.

    Založit nové vlákno • Nahoru

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

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