Byla vydána (𝕏) nová verze 9.5 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.
Společnost Raspberry Pi dnes vstoupila na Londýnskou burzu jako Raspberry Pi Holdings plc (investor).
Do 17. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2024 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Apple na své vývojářské konferenci WWDC24 (Worldwide Developers Conference, keynote) představil řadu novinek: svou umělou inteligenci pojmenovanou jednoduše Apple Intelligence, iOS 18, visionOS 2, macOS Sequoia, iPadOS 18, watchOS 11, …
Vyšla nová verze XMPP (Jabber) klienta Gajim, která přidává podporu reakcí pomocí emoji (XEP-0444: Message Reactions) a citace zpráv (XEP-0461: Message Replies). Přehled dalších vylepšení je k dispozici na oficiálních stránkách.
Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.
Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.
Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).
Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
namespace myns { struct myclass { int a() const { return 5; } int b() const { return 6; } int mysum() const { return a() + b(); } }; // Enable ADL mysum call for myclass int mysum(const myclass& m) { return m.mysum(); } } // -- 3rdparty knihovna -- namespace thirdparty { struct thirdpartyclass { int abc() const { return 5; } int def() const { return 6; } }; } // -- vlastni kod, implementovat mysum pro thirdpartyclass, musi byt ve stejnem namespace jako thirdpartyclass, aby fungovalo ADL namespace thirdparty { int mysum(const thirdpartyclass& t) { return t.abc() + t.def(); } } // -- pouziti v template: namespace totalydifferentnamespace { template<class... T> int getSumOfSums(const T&... t) { return (mysum(t) + ...); // Zde se vyuzije ADL, zavola se metoda mysum z namespace, kde je kazda trida definovana } } int main() { myns::myclass mc; thirdparty::thirdpartyclass t; return totalydifferentnamespace::getSumOfSums(mc, t); // 11+11=22 }
namespace myns { struct myclass { int a() const { return 5; } int b() const { return 6; } int mysum() const { return a() + b(); } }; } // -- 3rdparty knihovna -- namespace thirdparty { struct thirdpartyclass { int abc() const { return 5; } int def() const { return 6; } }; } // -- namespace totalydifferentnamespace { template<class... T> int getSumOfSums(const T&... t) { return (t.mysum() + ...); // Zde se vyuzije ADL, zavola se metoda mysum z namespace, kde je kazda trida definovana } } template<typename T> struct mysuminterface // not specialized { int mysum() const { return 0; } }; // specialzed for myns::myclass template<> struct mysuminterface<myns::myclass> : myns::myclass { using myns::myclass::mysum; }; // specialzed for thirdparty::thirdpartyclass template<> struct mysuminterface<thirdparty::thirdpartyclass> : thirdparty::thirdpartyclass { int mysum() const { return abc() + def(); } }; int main() { mysuminterface<myns::myclass> mc; mysuminterface<thirdparty::thirdpartyclass> t; return totalydifferentnamespace::getSumOfSums(mc, t); // 11+11=22 }
proč jakoby nestačí podědit nějakej trait a musí se 'hackovat' hotová instance?? :O :O
Tiskni Sdílej: