abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 00:22 | Zajímavý článek

    Na blogu programovacího jazyka Swift byl publikován příspěvek Psaní aplikací pro GNOME v programovacím jazyce Swift. Používá se Adwaita pro Swift.

    Ladislav Hagara | Komentářů: 1
    včera 17:44 | Zajímavý software

    egui je GUI knihovna pro programovací jazyk Rust běžící na webu i nativně. Vydána byla verze 0.27.0.

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

    Byla vydána nová verze 6.1 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.13. Thunderbird na verzi 115.9.0.

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

    Linka STOPonline.cz v roce 2023 přijala 3700 hlášení závadného obsahu na internetu, 22 bylo předáno PČR, 23 bylo předáno ISP a 944 závadových domén zobrazujících dětskou nahotu či pornografii bylo nahráno do mezinárodního systému ICCAM, který je spravován asociací INHOPE.

    Ladislav Hagara | Komentářů: 5
    26.3. 20:44 | Zajímavý článek

    Byla publikována podrobná analýza v upstreamu již opravené bezpečnostní chyby CVE-2024-1086 v Linuxu v nf_tables.

    Ladislav Hagara | Komentářů: 0
    26.3. 18:44 | Nová verze

    Byla vydána nová verze 4.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.3. 18:22 | Nová verze

    Úkolníček Taskwarrior (Wikipedie) pro správu úkolů z příkazového řádku byl vydán ve verzi 3.0.0.

    Ladislav Hagara | Komentářů: 0
    26.3. 16:33 | IT novinky

    Společnost Canva stojící za stejnojmenným webovým grafickým editorem koupila společnost Serif stojící za grafickým editorem Affinity.

    Ladislav Hagara | Komentářů: 10
    26.3. 16:00 | Nová verze

    Byla vydána betaverze Fedora Linuxu 40, tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 16. dubna. Z novinek (ChangeSet) lze vypíchnout podporu frameworku pro strojové učení PyTorch. Fedora KDE Plasma Desktop přichází s Plasmou 6 a běží nad Waylandem. Fedora Workstation přichází s GNOME 46.

    Ladislav Hagara | Komentářů: 4
    26.3. 06:11 | IT novinky

    Před měsícem společnost OpenAI představila AI model Sora pro generování realistických videí z textového popisu. Včera zveřejnila 7 videí od umělců, kterým umožnila přístup k tomuto modelu.

    Ladislav Hagara | Komentářů: 0
    Steam
     (24%)
     (29%)
     (13%)
     (10%)
     (24%)
    Celkem 378 hlasů
     Komentářů: 9, poslední 25.3. 18:16
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    13.7.2018 21:16 Pavel
    Rozbalit Rozbalit vše C++ Template a návratový typ
    Zdravím, mám né zrovna šikovně navrženou část aplikace v C++ a pokouším se to zjednodušit - nejspíš pomocí templatů, které jsem ale už dost zapomněl, takže bych tady chtěl poprosit o radu...

    Mam data dost ošlivě uložené ve třídě ze které je získávám jako pole pomocí metod readXY podle datových typů. Původně byly 2, teď už jich je hromada:
    
    Class Data
    {
    public:
    ...
    std::vector<u8> readU8(Info i);
    std::vector<float> readFloat(Info i);
    std::vector<std::vector<float>> readFloatVector(Info i);
    ...
    }
    Ve třídě Info je hromada informací podle kterých ty data získávám + jejich datový typ uložený jako enum class
    
    enum class DatovyTyp : u8 {U8,Float,FloatVector,...}
    class Info
    {
    public:
    ...
    std::string jmeno;
    DatovyTyp typ;
    ...
    }
    
    Celé použití je dost nešikovné, protože když chci získat všechny data a pak je zase dál použít, musím mít IF pro každý datový typ: (navazující metody už jsou teplate nebo přetížené, takže umí pracovat se všemi datovými typy, které potřebuju)
    
    Data d(...);
    for(...)
    {
      Info i(...);
      if(i.typ == DatovyTyp::Float)
      {
        std::vector<float> tmp = d.readFloat(i);
        nějakáPřetíženáFunkceNeboTemplate(tmp,...);
      }
      else if(i.typ == VariableType::U8)
      {
        nějakáPřetíženáFunkceNeboTemplate(d.readU8(i),...);
      }
    }
    
    Použití template ve smyslu:
    
    template <typename T>
        T read(Info i)
    {
    ...
    
    mě sice sjednotí všechny readXY do jedné šablony, ale pořád budu muset mít IF pro každý datový typ
    
    if(i.typ == DatovyTyp::Float)
    {
      std::vector<float> tmp = d.read<float>(i);
      nějakáPřetíženáFunkceNeboTemplate(tmp,...);
    }
    else if(i.typ == VariableType::U8)
    {
      nějakáPřetíženáFunkceNeboTemplate(d.read<u8>(i),...);
    }
    
    Chtěl bych idálně mít nějaký kouzelný template, který vrací datový typ podle toho enum class DatovyTyp - což pokud vím nejde.

    Takže se ptám, jestli existuje nějaká možnost jak uložit informaci o datovém typu tak, abych to potom mohl použít k určení návratového datového typu v template? Zatím jsem nic nenašel a co se pamatuju, tak tohle template neumožňují - existuje nějaká možnost jak to obejít?

    Nebo jak to celé upravit nějak jinak, abych se vyhnul IF pro každý datový typ?

    Díky.

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.