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
    13.9.2018 15:53 MadCatX
    Rozbalit Rozbalit vše Re: Rozšiřitelnost rozhraní a kompatibilita ABI v C++
    Napadlo mě, že pro tvé potřeby by ti nejspíš stačil koncept d-pointeru. Princip je ten, že ven exportuješ objekt, který bude mít vždy stejnou velikost bez ohledu na to, jaká data bude poskytovat. Data samotná budou obsažená v interní struktuře, na kterou bude exportovaný objekt obsahovat pointer - tím se zaručí ta neměnná velikost. Do exportovaného objektu můžeš přidávat gettery a settery pro všechny atributy. Příklad následuje:
    public_api.h
    #ifndef PUBLIC_API_H
    #define PUBLIC_API_H
    
    #include <string>
    
    #define ATTRIBUTES_API_VERSION 3
    
    class AttributesPrivate;
    
    class Attributes {
    public:
    	~Attributes();
    
    	int a() const;
    	int b() const;
    	bool c() const;
    	std::string s() const;
    	std::string s2() const;
    
    	void setA(int a);
    	void setB(int b);
    	void setC(bool c);
    	void setS(const std::string &s);
    	void setS2(const std::string &s2);
    
    	static Attributes make()
    	{
    		return Attributes(ATTRIBUTES_API_VERSION);
    	}
    
    private:
    	Attributes(int32_t apiVer);
    
    	int32_t API_VERSION;
    	AttributesPrivate *m_d;
    };
    
    #endif // PUBLIC_API_H
    
    private_api.h
    #ifndef PRIVATE_API_H
    #define PRIVATE_API_H
    
    #include "public_api.h"
    
    class AttributesPrivate {
    public:
    	/* V1 API */
    	int a;
    	int b;
    	bool c;
    
    	/* Added in V2 API */
    	std::string s;
    
    	/* Added in V3 API */
    	std::string s2;
    };
    
    #endif // PRIVATE_API_H
    
    library.cpp
    #include "private_api.h"
    
    Attributes::Attributes(int32_t apiVer) :
    	API_VERSION(apiVer),
    	m_d(new AttributesPrivate{})
    {
    }
    
    Attributes::~Attributes()
    {
    	delete m_d;
    }
    
    int Attributes::a() const
    {
    	return m_d->a;
    }
    
    int Attributes::b() const
    {
    	return m_d->b;
    }
    
    bool Attributes::c() const
    {
    	return m_d->c;
    }
    
    std::string Attributes::s() const
    {
    	return m_d->s;
    }
    
    std::string Attributes::s2() const
    {
    	return m_d->s2;
    }
    
    void Attributes::setA(int a)
    {
    	m_d->a = a;
    }
    
    void Attributes::setB(int b)
    {
    	m_d->b = b;
    }
    
    void Attributes::setC(bool c)
    {
    	m_d->c = c;
    }
    
    void Attributes::setS(const std::string &s)
    {
    	m_d->s = s;
    }
    
    void Attributes::setS2(const std::string &s2)
    {
    	m_d->s2 = s2;
    }
    
    Privátní konstruktor Attributes a statická factory metoda make implementovaní ve veřejném headeru umožňuje knihovně rozpoznat, vůči jaké verzi API byl zkompilován program, který ji volá a podle toho se zařídit. Pokud tohle chování nevyžaduješ, může být c-tor Attributes klidně veřejný.

    Tenhle koncept používají mj. třeba Qtčka.

    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.