Do 20. února lze hlasovat pro wallpapery pro Ubuntu 26.04 s kódovým názvem Resolute Raccoon.
Byla vydána lednová aktualizace aneb nová verze 1.109 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.109 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Na Kickstarteru běží kampaň na podporu modulárního otevřeného handheldu Mecha Comet s Linuxem.
V nedávno zveřejněné kolekci dokumentů souvisejících s kontroverzním finančníkem a kuplířem Jeffrey Epsteinem se překvapivě objevil i referenční manuál unixového shellu Bash, jedná se o verzi manuálu z roku 2005. Aktuální vydání si lze stáhnout ze stránek GNU.
The Document Foundation oznámila vydání nové verze 26.2 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs). Vypíchnout lze podporu formátu Markdown.
Co se děje ve zprávách, ví asi každý - válka sem, clo tam, demonstrace na jednu i druhou stranu a bastlíř už má pocit, že se snad ani nic jiného neděje. To by však byl velký omyl a Virtuální Bastlírna je zde jako každý měsíc, aby vytáhla na světlo světa události ze světa vědy a techniky. Připojte se tedy nezávaznému povídání Strahovského MacGyvera! Co se tam bude probírat? PCBWay začalo dělat průhledné plošňáky, MARS končí s výrobou skříněk, FEL
… více »Guvernérka státu New York Kathy Hochul (Demokraté) plánuje novou legislativu, která by měla omezit výrobu 3D tištěných zbraní. Tento návrh zákona zavádí povinnost pro všechny 3D tiskárny prodávané ve státě New York obsahovat 'software' bránící ve výrobě zbraní. Návrh zákona rovněž zakazuje lidem sdílet 'digitální plány zbraní' (blueprinty) bez povolení. Existují důvodné obavy, že se tento nešťastný nápad může šířit do dalších zemí a ovlivnit celý 3D tisk jako takový. Ostatně, s podobnou regulací nedávno přišel i stát Washington.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za prosinec 2025 a leden 2026 (YouTube). Zajímavé, že i v roce 2026 celou řadu problémů vyřeší falšování řetězce User-Agent.
Bylo rozhodnuto, že Linux From Scratch (LFS) končí s podporou System V init. Nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů už budou pouze se systemd.
Byla vydána nová verze 2026.1.0 "Like a Version" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. Změněno bylo číslování verzí. Předchozí verze byla 2.9.1.
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: