Vývojáři Debianu oznámili, že v březnu bude zahájeno zmrazování Debianu 13 s kódovým názvem Trixie. Současně bylo oznámeno, že kódový název Debianu 15 bude Duke. Debian 14 bude Forky.
Free Software Foundation (FSF, Nadace pro svobodný software) oslaví v říjnu 40 let od svého založení. Při této příležitosti proběhla soutěž o logo k této události. Dnes bylo vyhlášeno vítězné logo. Navrženo bylo v GIMPu.
Google zpřístupnil Gemini Live, svůj nástroj pro hlasovou komunikaci s umělou inteligencí, v českém a slovenském jazyce pro Android a brzy i iOS. Gemini Live umožňuje vést s AI přirozené rozhovory.
Port počítačové hry Pitfall! z roku 1982 napsané pro Atari 2600 si lze zahrát ve webovém prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu.
Multiplatformní multimediální knihovna SDL (Simple DirectMedia Layer) byla oficiálně vydána v nové major verzi 3 (3.2.0). Změny jsou popsány v README pro migraci aplikací z SDL 2 na SDL 3.
Wine bylo po roce vývoje od vydání verze 9.0 vydáno v nové stabilní verzi 10.0. Přehled novinek na GitLabu. Vypíchnuta je nová architektura ARM64EC a podpora High DPI škálování.
Edvard Rejthar na blogu zaměstnanců CZ.NIC představil nástroj deduplidog pro odstranění duplicitních souborů.
Společnost DeepSeek představila (𝕏) AI model DeepSeek-R1 (Hugging Face) srovnatelný s OpenAI o1 a uvolnila jej pod open source licencí MIT, tj. zdarma i pro komerční použití.
GKrellM (GNU Krell Monitors, Wikipedie), tj. grafická aplikace pro sledování systémů a různých událostí, byla po pěti a půl letech vydána v nové verzi 2.4.0. Přehled novinek na Gitea.
Americká první dáma Melania Trumpová vydala v předvečer manželovy inaugurace vlastní kryptoměnu. Jmenuje se $Melania. Donald Trump vydal vlastní kryptoměnu $Trump den před manželkou.
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: