Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. Vypíchnout lze, že v Plasmě byl implementován 22letý požadavek. Historie schránky nově umožňuje ohvězdičkovat vybrané položky a mít k ním trvalý a snadný přístup.
Wayfire, kompozitní správce oken běžící nad Waylandem a využívající wlroots, byl vydán ve verzi 0.10.0. Zdrojové kódy jsou k dispozici na GitHubu. Videoukázky na YouTube.
Před necelými čtyřmi měsíci byl Steven Deobald jmenován novým výkonným ředitelem GNOME Foundation. Včera skončil, protože "nebyl pro tuto roli v tento čas ten pravý".
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 156 (pdf).
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 25.8.1. Přehled novinek v Changelogu.
Včera večer měl na YouTube premiéru dokumentární film Python: The Documentary | An origin story.
Společnost comma.ai po třech letech od vydání verze 0.9 vydala novou verzi 0.10 open source pokročilého asistenčního systému pro řidiče openpilot (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 4. snapshot Ubuntu 25.10 (Questing Quokka).
Řada vestavěných počítačových desek a vývojových platforem NVIDIA Jetson se rozrostla o NVIDIA Jetson Thor. Ve srovnání se svým předchůdcem NVIDIA Jetson Orin nabízí 7,5krát vyšší výpočetní výkon umělé inteligence a 3,5krát vyšší energetickou účinnost. Softwarový stack NVIDIA JetPack 7 je založen na Ubuntu 24.04 LTS.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) spolu s NSA a dalšími americkými úřady upozorňuje (en) na čínského aktéra Salt Typhoon, který kompromituje sítě po celém světě.
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: