Byla vydána nová verze 5.12 svobodného multiplatformního softwaru pro konverzi a zpracování digitálních fotografií primárně ve formátů RAW RawTherapee (Wikipedie). Vedle zdrojových kódů je k dispozici také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).
Byly publikovány informace (txt) o zranitelnostech CVE-2025-5054 v Apport a CVE-2025-4598 v systemd-coredump. Lokální uživatel se může dostat k výpisu paměti programu (core dump) s SUID a přečíst si tak například /etc/shadow.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 2,69 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 30,95 %. Procesor AMD používá 68,77 % hráčů na Linuxu.
Byla vydána verze 4.0 open source programu na kreslení grafů Veusz (Wikipedie). Přehled novinek v poznámkách k vydání. Proběhla portace na Qt 6.
Dibuja je jednoduchý kreslící program inspirovaný programy Paintbrush pro macOS a Malování pro Windows. Vydána byla verze 0.26.0.
Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.
FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici
… více »
/* Tohle je jako časově náročná funkce z knihovny */
void NapisStoTecek(void (* callback)(int)) {
int i;
for (i = 0; i < 100; i++) {
/* Jednou za deset teček zavolej parametr */
if (!(i % 10)) callback(i);
/* Vypisuj tečky */
putchar('.');
}
}
/* Funkce volaná z knihovny, ale definovaná v aplikačním kódu */
void parametr(int procent) {
printf("\nHotovo na %i%%\n", procent);
}
/* Hlavní program */
int main(void) {
NapisStoTecek(parametr);
return 0;
}
že fce jsou obalené ve tříděA jak konkrétně? Jestli je
parametr
třídní funkce, tak pak má ve skutečnosti jako první parametr odkaz na this
. Jestli si dobře pamatuji, tak v C++ jsou na tohle oblíbené šablony + funktory (třídy s operátorem ()
).
Dodaný příklad funguje – jak vypadá ten, co se vzpouzí?
Příklad syntaxe obou variant (statická metoda a pointer na metodu):
#include <iostream> class cls; typedef void (*callback1)(char); typedef void (cls::*callback2)(char); class cls { public: cls() {} static void cb1(char c) { std::cout << c; } void cb2(char c) { std::cout << c; } void use1(callback1 f) { (*f)('A'); } void use2(callback2 f) { (this->*f)('B'); } }; int main() { cls X; X.use1(cls::cb1); X.use2(&cls::cb2); std::cout << std::endl; return 0; }
static
.
int (Trieda::*callback)(int)
a potom ju zavolat cez retval = this->*callback(int);
.
#include <iostream> /*Abstarct class as interface in the library */ class cosiPrintable { public: virtual void cosiDo(int procent) = 0; //or {}; }; /*Library functions*/ class libraryFunctions { private: libraryFunctions(); libraryFunctions(libraryFunctions &instance); public: static void NapisStoTecek(cosiPrintable *cosi) { int i; for (i = 0; i < 100; i++) { /* Jednou za deset teček zavolej parametr */ if (!(i % 10)) cosi->cosiDo(i); /* Vypisuj tečky */ std::cout << "."; std::cout.flush(); } cosi->cosiDo(100); } }; //--------- END OF THE LIBRARY ---------------- /* My implementation */ class myPrint : public cosiPrintable{ public: virtual void cosiDo(int procent) { std::cout << std::endl << "Hotovo na " << procent << " %" << std::endl; } }; /* Hlavní program */ int main(void) { myPrint myPrintInstance; libraryFunctions::NapisStoTecek(&myPrintInstance); return 0; }
Tiskni
Sdílej: