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í
×
    včera 21:44 | IT novinky

    Apple představil iPhone 17e a iPad Air s čipem M4.

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

    Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.

    Ladislav Hagara | Komentářů: 0
    včera 20:33 | IT novinky

    Byla oznámena spolupráce GrapheneOS s Motorolou. Podrobnosti v tiskové zprávě. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

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

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.2.1. Přehled novinek v Changelogu.

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

    Volí se dvě místa v Radě openSUSE. Seznamte se se čtyřmi kandidáty. Členové projektu openSUSE mohou hlasovat od 1. do 8. března. Výsledky budou oznámeny 9. března.

    lkocman | Komentářů: 1
    1.3. 19:22 | IT novinky

    Společnost OpenAI uzavřela dohodu s americkým ministerstvem obrany o poskytování technologií umělé inteligence (AI) pro utajované sítě americké armády. Firma to oznámila několik hodin poté, co prezident Donald Trump nařídil vládě, aby přestala využívat služby společnosti Anthropic.

    Ladislav Hagara | Komentářů: 7
    1.3. 13:33 | IT novinky

    Technologická společnost Anthropic v noci na dnešek oznámila, že se obrátí na soud kvůli rozhodnutí ministerstva obrany označit ji za bezpečnostní riziko dodavatelského řetězce poté, co nevyhověla jeho požadavkům týkajícím se používání umělé inteligence (AI). Prezident Donald Trump krátce před tím uvedl, že nařídil federálním úřadům postupně ukončit využívání jejích AI technologií. Spor mezi firmou vyvíjející chatbot Claude a

    … více »
    Ladislav Hagara | Komentářů: 11
    28.2. 15:44 | Upozornění

    Zemřel Rob Grant, spolutvůrce kultovního sci-fi seriálu Červený trpaslík.

    Ladislav Hagara | Komentářů: 8
    27.2. 17:33 | IT novinky

    Apple oznámil, že iPhone a iPad jako první a jediná zařízení pro koncové uživatele splňují požadavky členských států NATO na zabezpečení informací. Díky tomu je možné je používat pro práci s utajovanými informacemi až do stupně „NATO Restricted“, a to bez nutnosti instalovat speciální software nebo měnit nastavení. Žádné jiné běžně dostupné mobilní zařízení tak vysokou úroveň státní certifikace dosud nezískalo.

    Ladislav Hagara | Komentářů: 20
    27.2. 13:00 | IT novinky

    Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).

    Ladislav Hagara | Komentářů: 20
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (12%)
     (27%)
     (2%)
     (5%)
     (2%)
     (13%)
     (26%)
    Celkem 991 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: C++ multiplatformová appka - preprocesor vs abstrakcia

    hermes avatar 28.9.2020 01:00 hermes | skóre: 7 | blog: Elektro | BA
    C++ multiplatformová appka - preprocesor vs abstrakcia
    Přečteno: 321×
    Dajme tomu že máme aplikáciu pre viacero platforiem.

    Jedna trieda má implemetáciu nezávislú pre každý operačný systém. Ako by ste ju začlenili do zvyšku systému?
    1. urobil by som jednu triedu a a pre každú platformu by som napísal iný ifdef.
    2. urobil by som jedno rozhranie ktoré by pre každú platformu implemetovala iná trieda. A potom by som cez IoC kontainer vložil tú správnu toriedu podľa platformy. Ostatné triedy by si cez konštruktor pýtali rozhranie... Nie triedu. Takže bolo by jednotné rozhranie ale vždy s inou implemetáciou. To či by boli jednotlivé implemetácie v statickej triede alebo niekde inde je už len implemetačný detail.
    3. iné riešenie... Napíšte aké.
    POZN: pojmom rozhranie v C++ myslím abstraktnú triedu iba s virtuálnymi public metódami bez tela.

    Řešení dotazu:


    Odpovědi

    28.9.2020 09:11 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: C++ multiplatformová appka - preprocesor vs abstrakcia
    Skôr by si mal povedať: implementácia jednej triedy závisí od operačného systému. Nie?

    Ja som to robil tak, že ifdef-mi riešim jednotlivé systémové funkcie - napr. fopen() vs _fopen(), alebo si urobím pre také funkcie a typy wrapper, ktorý je vnútri ifdef-nutý podľa platformy (napr. fopen() vs. CreateFile()). Niekedy rovnako pomenované funkcie mám v dvoch zdrojákoch a podľa platformy použijem v projekt-file ten správny (foo_win.c vs foo_lin.c).

    Záleží na tom, aké platformy to sú a v čom sa líšia. Cieľom by asi malo byť, aby sa prípadná oprava bugu nemusela robiť pre každú plaformu zvlášť, resp. aby tie miesta, kde sa to robí pre obe platformy neboli "ďaleko" od seba. Aby sa ti nestávalo, že pre jednu to opravíš a pre druhú nie.
    28.9.2020 09:33 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: C++ multiplatformová appka - preprocesor vs abstrakcia
    Jednu třídu, pro každou platformu includovat jinou sadu maker, místo funkcí volat makra.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    28.9.2020 10:52 MadCatX | skóre: 28 | blog: dev_urandom
    Rozbalit Rozbalit vše Re: C++ multiplatformová appka - preprocesor vs abstrakcia
    Definici třídy do headeru, implementaci do ".cpp" souborů s layoutem zhruba "myclass_common.cpp", "myclass_win32.cpp", "myclass_linux.cpp" apod. V makefilu nastavíš, jaká implementace se má na které platformě zkompilovat. Preprocesorové výhybky se vyplatí, pokud je (velká) většina kódu společná, jinak to začne být chaos.

    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.