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 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 17
    včera 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    Kdo vám letos nadělí dárek?
     (33%)
     (2%)
     (11%)
     (2%)
     (1%)
     (2%)
     (15%)
     (19%)
     (14%)
    Celkem 85 hlasů
     Komentářů: 18, poslední včera 15:30
    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
    12.9.2018 19:09 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Rozšiřitelnost rozhraní a kompatibilita ABI v C++

    Ještě doplním kontext. Mám rozhraní:

    class RelationalReader {
    public:
        virtual ~RelationalReader() = default;
        virtual void addHandler(handlers::RelationalReaderStringHadler* handler) = 0;
        virtual void addHandler(handlers::RelationalReaderValueHadler* handler) = 0;
        virtual void process() = 0;
    };

    Jeho instance si uživatel vytváří přes tovární metodu:

    class Factory {
    public:
        static RelationalReader* create(std::istream &input);
    };

    Když chce zpracovat vstupní proud dat, napíše si vlastní Handlery, zavolá jednou nebo víckrát addHandler() a potom process() (v rámci této metody se pak provolávají všechny zaregistrované Handlery).

    class RelationalReaderBaseHadler {
    public:
        virtual ~RelationalReaderBaseHadler() = default;
        virtual void startRelation(string_t name, std::vector<AttributeMetadata> attributes) = 0;
        virtual void endOfPipe() = 0;
    };

    Rozšiřovat by se časem mohlo to AttributeMetadata a taky by mohly přibýt další druhy Handlerů (což znamená přidat nové druhy addHandler() a rozšířit tak rozhraní Readeru).

    Napadlo mne, že bych pak mohl přidat novou třídu RelationalReader2 a novou tovární metodu, která by její instance vracela. A tato nová třída RelationalReader2 by mohla podporovat nové verze Handlerů a ty nové verze Metadat.

    To by mělo fungovat, ne? Akorát mi trochu vadí, že i kvůli drobnému rozšíření Metadat je potřeba přidat několik dalších tříd resp. verzí rozhraní. Asi by to mohla být pořád jedna implementační třída, která by podporovala rozhraní všech verzí. Je tohle správná cesta? Nebo vás napadá nějaké jednodušší elegantnější řešení?

    Když už by se verzovaly třídy, je lepší dávat verzi do jejich názvu nebo do jmenného prostoru? Spíš mi přijde, že do prostoru. A dělá se spíš namespace reader1 { nebo namespace reader { namespace v1 {? A přes inline namespace by to mělo být napojené do neverzovaného prostoru, který by ukazoval na poslední verzi?

    Některé knihovny mají verzované jen adresáře s hlavičkovými soubory, ale třídy a jmenné prostory už ne, např.

    #include <botan-1.10/botan/bcrypt.h>

    P.S. Nemáte odkaz na nějakou knihovnu, ve které je podle vás tohle dokonale vyřešené? Nechci vymýšlet kolo, ale na druhou stranu, co jsem zatím našel, byly dost velké projekty se spoustou kódu a poměrně složitým build systémem.

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    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.