Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.
Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU
… více »GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.
Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.
Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.
Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.
Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.
Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].
V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.
struct A{ virtual int compute(int foo){ /* výpočet A */ } }; struct B: public A{ virtual int compute(int foo){ /* výpočet B */ } }; vector<objekt*> objekty; // naplnit pole etc. for(int i=0; i<100000; i++){ // tady se pro každý objekt v každém kroku resolvuje virtuální funkce, přitom výsledek pro kažedý objekt vždy stejný BOOST_FOREACH(const objekt*, objekty){ sum+=objekt->compute(bar); } }kde je nějaká množina objektů, na kterých se compute mnohokrát opakovaně volá. Nový scénář:
struct A{ typedef boost::function<int(int)> computePtrT; computePtrT compuptePtr; int computeA(int foo){ /* výpočet A */ } // neni virtualni! virtual computePtrT getComputePtr(){ return boost::bind(&A::computeA,this,_1); } }; struct B: public A{ int computeB(int foo){ /* výpočet B */ } // neni virtualni virtual computePtrT getComputePtr(){ return boost::bind(&B::computeB,this,_1); } }; for(int i=0; i<100000; i++){ BOOST_FOREACH(const objekt*, objekty){ // při prvním cyklu se voláním virtuální funkce nastaví pointer na nevirtuální funkci (computeA nebo computeB) if(!objekt->computePtr) objekt->computePtr=objekt->getComputePtr(); sum+=objekt->computePtr(bar); } }Díky za komentáře.
Řešení dotazu:
boost::function
při volání používá virtuální funkci.
boost::function
při volání používá virtuální funkci.
Tiskni Sdílej: