Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.
NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.
Předobjednat si lze nový jednodeskový počítač Arduino VENTUNO Q s předinstalovaným Ubuntu. S 16 GB LPDDR5 a 64 GB eMMC. Pro lokální LLM, agentní AI, počítačové vidění, robotiku…
Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě. Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom
CERN dlouhodobě používal vlastní sestavení RHEL, ze kterého přešel na CentOS Stream. Federico Vaga a Nikos Tsipinakis ale nyní v přednášce na MiniDebConf Winterthur 2026 popisují plán probíhajícího přechodu na Debian pro řízení akcelerátorů. Důvodem k opuštění CentOS Stream jsou zachování zpětné kompatibility se starším hardwarem, kterou Red Hat narušuje, když tlačí sestavení balíčků pro novější verze architektury (x86-64), a nedostatečné nástroje pro sestavování vlastních balíčků a repozitářů.
UZDoom (Wikipedie), tj. fork GZDoom, byl vydán ve verzi 5.0.0. Videopředstavení na YouTube. Podrobný přehled novinek v Changelogu.
Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.
Národní bezpečnostní tým CSIRT.CZ koordinovaný sdružením CZ.NIC přichází se službou Strážci internetu, která má sjednotit způsob hlášení doménových jmen zneužívaných k páchání trestné činnosti. Službu mohou uživatelé využívat také prostřednictvím rozšíření do prohlížeče. Nový nástroj podporuje jak hlášení vyžadující autorizaci, tak anonymní reporting, u kterého však nebude možné zapojit takovou míru automatizace jako u
… více »Firefox pro iOS přichází s integrovaným blokováním reklam. Funkce je ve výchozím nastavení vypnutá a lze ji aktivovat v Settings > Browsing > Ad Blocker.
Tiskni
Sdílej:
using std::vector;, čímž deklaruješ, že tuhle konkrétní třídu chceš mít dostupnou v aktuálním namespace bez prefixu. Pak se nemusíš bát, že si způsobíš nějaké obtíže tím, že jsi z std:: namespace přitáhl všechno (včetně operátorů a funkcí, o kterých si nikdy ani neslyšel).
using std::vector; using std::string; using std::cin; using std::cout;to je asi nejlepší způsob, nicméně v header files musí být všude std::
lines.push_back(line); není idiomatické, idiomatický by byl move (lines.push_back(std::move(line)); nebo dtto s emplace).
Chlupaté závorky by to chtělo používat konzistentně (u main funkce jsou jinde než u ostatních) a osobně silně preferuju je mít i okolo jednořádkových if/for/atd.
Import ze std nejlépe pomocí using std::vector atd.
Jinak jestli tohle přijde jako ošklivý kód, tak počkej, až uvidíš opravdu ošklivé C++ :)
void read_lines(std::vector<std::string>& lines);Dává prostor pro různá chování v případě, když kolekce nebude prázdná a omezuje načítání na vektor. Raději
void read_lines(std::insert_iterator<std::string>& it);nebo
std::vbector<std::string>& lines read_lines();
Dává prostor pro různá chování v případě, když kolekce nebude prázdná a omezuje načítání na vektor. Raději void read_lines(std::insert_iterator<std::string>& it);Nemelo by to byt spis takto?
void read_lines(std::insert_iterator<std::vector<std::string>>& it);
Cimz to stejne omezis na vektor
nebo std::vbector<std::string>& lines read_lines();A tohle asi melo byt spis takto:
std::vector<std::string> read_lines();
Jinak to ze funkci read_lines() muzes predat konteiner ktery neni prazdny je spis vyhoda nez nevyhoda. A pokud bych to chtel rozsirit i na jine konteinery nez std::vector, tak bych to udelal spis takto:
template<typename Container>
void read_lines(Container &c);
Point* getStart(Line* line)); // Point je soucasti struktury Line a tim padem se uvolni spolu s uvolnenim Line nebo je to nova instance tridy Point a musis ji uvolnit?
Podle me by to v tomto pripade mel byt std::vector<> navratova hodnota funkce readLines(), pak je to docela jasne, ale samozrejme bavime se o C++11, kdy std::vector ma move semantics, jinak ti teoreticky hrozi kopirovani celeho vektoru, i kdyz to je jedna ze zakladnich optimalizaci na kterou je spolehnuti.
Ale dobra praxe je - delej to jak chces, ale v ramci jednoho projektu vzdycky stejne.
furt jakoby víc lepčejší než rust :P :D ;D ;D