Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.
Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.
Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.
MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.
Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si
… více »Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
Byly publikovány informace o další zranitelnosti v procesorech. Nejnovější zranitelnost byla pojmenována VMScape (CVE-2025-40300, GitHub) a v upstream Linuxech je již opravena. Jedná se o variantu Spectre. KVM host může číst data z uživatelského prostoru hypervizoru, např. QEMU.
class Request {}; class Response {}; class Controller { public: void BeforeAction(Request request, Response response) { std::cout << "BeforeAction" << std::endl; } template<typename C, typename void(C::* Action)(Request request, Response response)> void CallAction( Request request, Response response ) { this->BeforeAction(request, response); (static_cast<C*>(this)->*Action)(request, response); } }; class HomeController : public Controller { public: void HandleIndex( Request request, Response response ) { std::cout << "HandleIndex" << std::endl; } };
auto controller = HomeController(); auto request = Request(); auto response = Response(); controller.CallAction<HomeController, &HomeController::HandleIndex>(request, response);Ale chcel by som to ešte trošku "učesať" chcel by som aby som nemusel uvádzať ten prvý template parameter v CallAction action metóde (názov triedy). Teda buď aby som ho nemusel vôbec uvádzať, alebo aby sa odvodil nejako pomocou type inference. Viete mi prosím poradiť ako na to? Zdá sa mi zbytočne uvádzať ho 2x porušuje to princíp DRY.
Řešení dotazu:
proč prostě jakoby nepoužiješ polymorfizmuz?? :O :O stejně asi jako všecky ty voběkty musej mit to action by to fungovalo takže asi dědit z jednoho předka společnýho :O :O
keďže vopred neviem aký názov Akcií zvolím v potomkovi a akcie môžu mať praktiocky ľubovolný názov
jestli jako všecky berou jako argumenty 'request' a 'response' anic víc nic míň by nato šlo možná jít přez function pointery který by byly strkaný jako argument do tý metody 'CallAction' :O :O
jak se jako zbavit toho datovýho typu v šabloně navíc zatim nevim :D toje moc velikakakakánská c++ magie ukazatele na metody nastrkaný do šablony :D :D
class Request {}; class Response {}; class Controller { public: void BeforeAction(Request request, Response response) { std::cout << "BeforeAction" << std::endl; } template<typename C> void CallAction( void(C::*func)(Request, Response), Request request, Response response ) { this->BeforeAction(request, response); (static_cast<C*>(this)->*func)(request, response); } }; class HomeController : public Controller { public: void HandleIndex( Request request, Response response ) { std::cout << "HandleIndex" << std::endl; } }; int main() { auto controller = HomeController(); auto request = Request(); auto response = Response(); controller.CallAction(&HomeController::HandleIndex, request, response); }
nemaj se function pointery jakoby teďko dělat se std::function hele?? :O :O
std::function<void(Request, Response)>
, tak buď bude v místě volání jako parametr hnusný std::bind(&HomeController::HandleIndex, controller, std::placeholders::_1, std::placeholders::_2)
(který zároveň často likviduje optimalizace), nebo tam bude lambda [&](Request req, Response res){controller.HandleIndex(std::move(req), std::move(res));}
.
Member function pointer mi zde přijde jako asi přehlednější řešení podle požadavku autora dotazu. Codegen vypadá nejlepší s původním řešením autora ... https://godbolt.org/z/nYbGfoPrW (vlevo řešení s předáním member function jako parametru, uprostřed member function jako template parameter, vpravo předání přes std::function). Osobně jsem čekal, že codegen 1. a 2. bude stejný, že to kompilátor zoptimalizuje, ale asi se mu to moc nedaří ...
Toto sa mi dá skompilovať:
btw by se mi to zkompilovalo v g++ 10 sem musela přepsat jedenáctej řádek na
template<class C, void(C::* Action)(Request, Response)>
Tiskni
Sdílej: