Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.
České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.
Microsoft Defender nově podporuje linuxové desktopy.
Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).
Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.
KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
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: