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

    Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 1
    dnes 02:55 | Nová verze

    Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    dnes 01:22 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 17:00 | Upozornění

    Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].

    Ladislav Hagara | Komentářů: 9
    včera 16:44 | IT novinky

    Americký výrobce čipů Nvidia se stal první firmou na světě, jejíž tržní hodnota dosáhla pěti bilionů USD (104,5 bilionu Kč). Nvidia stojí v čele světového trhu s čipy pro umělou inteligenci (AI) a výrazně těží z prudkého růstu zájmu o tuto technologii. Nvidia již byla první firmou, která překonala hranici čtyř bilionů USD, a to letos v červenci.

    Ladislav Hagara | Komentářů: 6
    včera 14:11 | Komunita

    Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).

    Ladislav Hagara | Komentářů: 2
    včera 13:55 | Nová verze

    TrueNAS (Wikipedie), tj. open source storage platforma postavená na Linuxu, byl vydán ve verzi 25.10 Goldeye. Přináší NVMe over Fabric (NVMe-oF) nebo OpenZFS 2.3.4.

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

    Byla vydána OpenIndiana 2025.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Zajímavý článek

    České základní a střední školy čelí alarmujícímu stavu kybernetické bezpečnosti. Až 89 % identifikovaných zranitelností v IT infrastruktuře vzdělávacích institucí dosahuje kritické úrovně, což znamená, že útočníci mohou vzdáleně převzít kontrolu nad klíčovými systémy. Školy navíc často provozují zastaralé technologie, i roky nechávají zařízení bez potřebných aktualizací softwaru a používají k nim pouze výchozí, všeobecně známá

    … více »
    Ladislav Hagara | Komentářů: 16
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (19%)
     (19%)
     (22%)
     (17%)
     (21%)
     (16%)
     (17%)
    Celkem 285 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Ako odtestovať generický parameter na pole ľubovolnej

    11.10.2020 12:24 Naples
    Ako odtestovať generický parameter na pole ľubovolnej
    Přečteno: 268×
    Ako odtestovať generický parameter na pole ľubovolnej velkosti určitého typu?

    Včera som hľadal spôsob ako odtestovať či je generický parameter typu pole.

    problém je že funkcia is_same_v testuje pole len s presnou velkosťou.

    to znamená že ak mám pole:
    int[5]

    tak musím testovať
    is_same_v<T, int[5]>

    ale čo ak dopredu netuším veľkosť pola a potrebujem odtestovať či premenná má pole nejakého typu, ľubovolnej velkosti?

    testujem to zatiaľ takto:
    if constexpr (std::is_array_v<InputType> && std::is_same_v<InputType, ArrayType[std::extent_v<InputType>]>)
    {
        //niečo
    }
    else
    {
        static_assert(false, "Chyba, nesprávny typ")
    }
    Funguje to akurát som z toho chcel urobiť nejaký znovupoužiteľný kus kódu (trait, makro, alebo hocičo iné) a to už bolo nad moje sily. Celá tá template časť C++ je deklaratívna, pripomína mi trošku funkcionálne programovanie a vyzerá to dosť zaujímavo.
    1. Vedeli by ste mi poradiť ako si z tej podmienky urobiť trait?
    2. A tiež poradiť nejakú kvalitnú knihu (alebo iný zroj informácií kludne aj školenie) o šablónach v C++? Ja už mám doma 6 kníh o C++, niektoré sú riadne hrubé bichle, ale v žiadnej som nenašiel dostatočne obšírne vysvetlenú problematika šablón. Kniha môže byť kludne aj v AJ
    Ďakujem.

    Řešení dotazu:


    Odpovědi

    11.10.2020 13:25 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: Ako odtestovať generický parameter na pole ľubovolnej
    Vo svete C by to tak mozno bolo:

    Nechces vela? Zakladne typy su pre nieco zakladne. Mozno by bolo dobre sa naucit C, pripadne ASM a ako funguje hardwer. Ked sa chces dobre. Ak ultra, tak elektroniku. Ono. Kazda technologia nieco dokaze, tak dalsia sa to snazi urobit, lahsie atd. A kazda technika ma svoje limity.

    struct { void *data; size_t bytes; int type; } data_t;
    debian.plus@protonmail.com
    11.10.2020 14:03 10minuteman
    Rozbalit Rozbalit vše Re: Ako odtestovať generický parameter na pole ľubovolnej
    1. mozna by ti pomohl enable_if ? Popravde nevim. Co te tu sleduju, prijde mi, ze s temi traity vytvaris nejake tezke voodoo. Proc nenechas kontrolu na prekladaci?

    2. Tahle je nejlepsi.
    🇹🇬 avatar 11.10.2020 15:55 🇹🇬 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Ako odtestovať generický parameter na pole ľubovolnej

    noa nestačilo by ti jakoby tam tu velikost pole prostě dycky zistit hele?? :O :O

    template <typename T, size_t n> constexpr size_t array_size(const T (&)[n]) { return n; }
    

    dyžtak se neuraz ale mam taky takovej pocit že se snažíš to cpp přivohnout ze silně typovýho jazyka na slabě typovej s timže tu kontrolu typů chceš asi nějak řešit sám :O ;D

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶

    Založit nové vláknoNahoru

    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.