Virtualizační softwary VMware Workstation Pro a VMware Fusion Pro jsou nově pro osobní použití zdarma. Softwary VMware Workstation Player a VMware Fusion Player končí.
Linuxová distribuce Endless OS (Wikipedie) byla vydána ve verzi 6.0.0. Přehled novinek i s náhledy v příspěvku na blogu, poznámkách k vydání a také na YouTube.
Byl vydán Mozilla Firefox 126.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vylepšena byla funkce "Zkopírovat odkaz bez sledovacích prvků". Přidána byla podpora zstd (Zstandard). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 126 je již k dispozici také na Flathubu a Snapcraftu.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 11.0. Přehled novinek v aktualizované dokumentaci.
Byla vydána nová verze 24.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Wynsdey. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.
Byla představena oficiální rozšiřující deska Raspberry Pi M.2 HAT+ pro připojování M.2 periferii jako jsou NVMe disky a AI akcelerátory k Raspberry Pi 5. Cena je 12 dolarů.
V Praze o víkendu proběhla bastlířská událost roku - výstava Maker Fair v Praze. I strahovští bastlíři nelenili a bastly ostatních prozkoumali. Přijďte si proto i vy na Virtuální Bastlírnu popovídat, co Vás nejvíce zaujalo a jaké projekty jste si přinesli! Samozřejmě, nejen českou bastlířskou scénou je člověk živ - takže co se stalo ve světě a o čem mohou strahováci něco říct? Smutnou zprávou může být to, že provozovatel Sigfoxu jde do
… více »Kam asi vede IllllIllIIl.llIlI.lI? Zkracovač URL llIlI.lI.
Společnost OpenAI představila svůj nejnovější AI model GPT-4o (o jako omni, tj. vše). Nově také "vidí" a "slyší". Videoukázky na 𝕏 nebo YouTube.
Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.
class TEST{ public: TEST(); typedef struct { int a; }ITEM; const ITEM items[]; };Nyní bych chtěl v konstruktoru třídy TEST() naplnit pole items. Plánuji potom zdědit tuto třídu (TEST) a každý potomek si vytvoří svoje pole items. Jak na to? Použití std::vector nebo array atd není možné (embeddded). Jediná pro mě zatím funkční varianta je mít takovýto konstruktor:
TEST(){ ITEM asfafafsfff[]={ {4},{5} }; itms=asfafafsfff; }Ale vůbec se mi to nelíbí. Navíc items nemůže být const a busí být definován jako ITEM * items.
To je jakýsi podivný mix C++ (class
), C (typedef struct
) a kdoví, možná i Javy (items[]
), ale nejspíš to má být „nekonečné“ pole na konci C99 struktury, které ovšem není ani vzdáleně kompatibilní s C++ (bez přetěžování new
a delete
), protože samo od sebe není jasné, jak tam mají fungovat konstruktory a destruktory…
Použití std::vector nebo array atd není možné (embeddded).
V jakém slova smyslu to není možné? To ten embedded systém nemá alokátor paměti? std::array
bude fungovat bez dynamické alokace, přesně k takovému použití je určené…
Kdo / co určuje velikost pole items
? Je k tomu přetížený operátor new
a delete
? Jak vypadá?
Ten každý potomek má být ve skutečnosti každá podtřída nebo každá instance? Nebylo by v prvním případě lepší mít to pole statické? (Ať tak nebo tak, asi by mělo být protected
a/nebo const
.)
#include <array> #include <cstdint> #include <utility> namespace { template <std::size_t Size> struct Test1 { struct Item { int a; }; template <typename... ALike> Test1(ALike&&... as) : items_{{.a = std::forward<ALike>(as)}...} { static_assert(sizeof...(as) <= Size); } protected: const Item items_[Size]; }; template <std::size_t Size> struct Test2 { struct Item { int a; }; template <typename... ALike> Test2(ALike&&... as) : items_{Item{.a = std::forward<ALike>(as)}...} { static_assert(sizeof...(as) <= Size); } protected: const std::array<Item, Size> items_; }; } // namespace int main() { Test1<6> t{1, 2, 3, 4, 5}; Test2<5>{1, 2, 3, 4}; }
Tiskni Sdílej: