Zemřel Rob Grant, spolutvůrce kultovního sci-fi seriálu Červený trpaslík.
Apple oznámil, že iPhone a iPad jako první a jediná zařízení pro koncové uživatele splňují požadavky členských států NATO na zabezpečení informací. Díky tomu je možné je používat pro práci s utajovanými informacemi až do stupně „NATO Restricted“, a to bez nutnosti instalovat speciální software nebo měnit nastavení. Žádné jiné běžně dostupné mobilní zařízení tak vysokou úroveň státní certifikace dosud nezískalo.
Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).
Americká společnosti Apple přesune část výroby svého malého stolního počítače Mac mini z Asie do Spojených států. Výroba v závodě v Houstonu by měla začít ještě v letošním roce, uvedla firma na svém webu. Apple také plánuje rozšířit svůj závod v Houstonu o nové školicí centrum pro pokročilou výrobu. V Houstonu by měly vzniknout tisíce nových pracovních míst.
Vědci Biotechnologické společnosti Cortical Labs vytvořili biopočítač nazvaný CL1, který využívá živé lidské mozkové buňky vypěstované z kmenových buněk na čipu. Po úspěchu se hrou PONG se ho nyní snaží naučit hrát DOOM. Neurony přijímají signály podle toho, co se ve hře děje, a jejich reakce jsou převáděny na akce jako pohyb nebo střelba. V tuto chvíli systém hraje velmi špatně, ale dokáže reagovat, trochu se učit a v reálném čase se hrou
… více »Pro testování byl vydán 4. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Ben Sturmfels oznámil vydání MediaGoblinu 0.15.0. Přehled novinek v poznámkách k vydání. MediaGoblin (Wikipedie) je svobodná multimediální publikační platforma a decentralizovaná alternativa ke službám jako Flickr, YouTube, SoundCloud atd. Ukázka například na LibrePlanet.
TerminalPhone (png) je skript v Bashi pro push-to-talk hlasovou a textovou komunikaci přes Tor využívající .onion adresy.
Před dvěma lety zavedli operátoři ochranu proti podvrženým hovorům, kdy volající falšuje čísla anebo se vydává za někoho jiného. Nyní v roce 2026 blokují operátoři díky nasazeným technologiím v průměru 3 miliony pokusů o podvodný hovor měsíčně (tzn., že k propojení na zákazníka vůbec nedojde). Ochrana před tzv. spoofingem je pro zákazníky a zákaznice všech tří operátorů zdarma, ať už jde o mobilní čísla nebo pevné linky.
Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.
g++ pošle do nekonečné rekurze.
template<class T> struct S { S<T*> operator ->(); };
S<int> i, j = i->();
Říkal jsem si: blbost, C++ přece není TAK pitomý jazyk, vždyť pro rekurzi v templates má ISO standartem předepsané nějaké limity právě aby se vyhnuli možnosti zacyklení při překladu. Kdepak, zkusil jsem a fakt si na tom g++ (aspoň to z gcc 4.1.1) vyláme zuby: sebere 100% CPU, a pomalu požírá swap... C++ překladač sice (úmyslně) není Turing-complete, to mu ale v zacyklení zjevně nijak nepřekáží
. Jo a programátorská varice na "až budou padat trakaře" na poslední stránce taky pobavila.
A co vy? Programujete v C++? Dobrovolně? A jak se daří vašemu mozkovému nádoru?
Tiskni
Sdílej:
- Exceptions in constructor don’t unwind the constructor itself
- Does not even clean up local variables!
- Must do own cleanup
- OTOH: no other way to return failure, constructors are void
Od pitomostí typu, že napíšu prasácký kód, který se nedá číst (což jde v jakémkoli jazyce)To neni pravda, v brainfucku to nejde.
Neobjektovost jako výhoda? Chápu, že ne každý ocení výhodu objektového programování, ale jak může být možnost používat objekty nevýhodou?
{
SomeStructure a;
SomeStructureInit(&a);
SomeStructureDoSomething(&a);
SomeStructureDestroy(&a);
}
C++ varianta:
{
SomeStructure a;
a.doSomething();
}
C++ varianta pro lepsi kontrolu:
{
SomeStructure a;
a.init();
a.doSomething();
a.destroy();
}
Vygenerovany kod prekladacem bude totozny. Obe C++ varianty jsou jednoznacne prehlednejsi, z kodu mizi zbytecne prefixovani funkci, ktere dela kod spis necitelnym.

)
/usr/include/python2.4/object.h je krásně čitelný. Sdílené atributy objektů vytvářené pomocí #define PyObject_HEAD, polymorfismus přes ukazatel na struct _typeobject. Všechny výhody C++ lze mít C také, a to bez problémů které C++ přináší, ergo C++ žádné výhody nemá. Vy opravdu expanzi makra uvnitř struct-u považujete za orgie? Vaše manželka se pravděpodobně dosti nudí.
1) Proč se domníváte že řádek kódu, který obsahuje VÍCE informací, je méně čitelný?Protože neobsahuje VÍCE informací
To prefixování v C++ nemizí, v globálních symbolech zůstává, pouze se podobně jako komunista v epicentru jaderného výbuchu proměňuje na paprsky gamma a škodí dálPokud Vám to tak vadí, tak ty metody můžou být inline a odkazovat na extern "C" funkce (třeba pro volání z asm kódu). Reaguji pozdě,,,já vím:)
není objektové
Což je právě ta vada 
Jinak s C++ teď začínám. Na jednu stranu je to zajímavé, ale na druhou stranu psát v Javě je mnohem příjemnější.
C++ je oproti D naprostý humus.
C++ překladač sice (úmyslně) není Turing-complete.A Zeme je placata. Neumyslne.
?
- C preprocessor umi smycky (cykly).
$ cat factorial.h #if (N <= 1) 1 #else N * #define N2 (N-1) #undef N #define N N2 #include "factorial.h" #endifCPP má lazy expanzi maker, takže na 6. řádku se do N2 uloží vždy stejný výraz, N se neexpanduje. Možná je na to nějaký hack, jak si expanzi v #define řádku vynutit, ale neznám ho.
// tohle je obechcavka, nevim presne na co #define CAT(a, b) a##b #define COND_0 a #define COND_1 b #define COND CAT(COND_, RIDICI) //pouziti: #define RIDICI 0 COND // melo by byt a #define RIDICI 1 COND // ted zas bMyslim, ze cykly by sly nejak podobne, ale uz tohle ukazuje jak se da v preprocesoru programovat. Pokud by vas to vic zajimalo, doporucuju zdrojaky z Boost preprocessor library, je to pekny poctenicko
VAROVANI: Tohle, kdyz jsem to programoval, me zpusobilo boleni hlavy jeste dalsi den.
error: #include nested too deeply. U gcc je limit natvrdo po 200 zanořeních (právě vyzkoušeno).
3) Nojo, v tomhle máte pravdu. Jenže Pentium může adresovat paměti (externí) kolik chce, kdežto C++ zdroják může templaty nořit jen jak mu překladač dovolí.
ja problem vidim tam, ze po operaci prirazeni nemate zarucene, co je v obou objektech, aniz byste vedel co je v trideCo? Jak nemám zaručené?
operatory bitoveho posunu jsou naraz operatory vstupu a vystupNejsou. To, že to tak nějaká konkrétní třída dělá, to je jiná věc. A navíc mi neříkejte, že vás to opravdu mate - tohle je věc jasná na první pohled.
neco << 5;Kdo by dělal něco takového, když by šlo o bitový posun? Tam by přece vždycky bylo přiřazení nebo
<<=.
a = b vite, co bude v obou objektech... aniz byste vedel jak je operator deklarovany ve tride. btw. ona je jeste sranda, ze v nekterem pripade (ted presne si nevzpominam kterem) se pouzije kopirovaci konstruktor... ale kdyz se vam takovy jazyk libi... dobre vam tak...
operatory bitoveho posunu jsou naraz operatory vstupu a vystup. Nejsou. To, že to tak nějaká konkrétní třída dělá, to je jiná věc. tak jsou nebo nejsou? s takovou tu budeme cyklit jeste dlouho. btw. dokaze me nekdo vysvetlit, proc se nepouzivaji normalni metody, jako v jinych jazycih?
assign(a, b);, a.assign(b);, a = b.clone();, nebo a = clone b; to jasne je?
const. A na všetko ostatné tu zas isté múdre hlavy vymysleli dokumentáciu.
nerikejte ze po provedeni a = b vite, co bude v obou objektech... aniz byste vedel jak je operator deklarovany ve tride.Co je to za blbou úvahu - tak snad mám rozum a vím, co dělám. Hodnota objektu b by neměla být ovlivněna a podle nějaké logiky se dá vydedukovat, že bude hodnota z b okopírována do a. To už se vás můžu ptát, jestli víte, co udělá tohle:
a.write(b)A jakou záruku, že to udělá skutečně to, co chcete, máte bez prozkoumání zdrojáku té metody?
tak jsou nebo nejsou? s takovou tu budeme cyklit jeste dlouho. btw. dokaze me nekdo vysvetlit, proc se nepouzivaji normalni metody, jako v jinych jazycih?Smím se zeptat, jak dobře C++ znáte? Jestli vám osobně vadí <<, tak klidně použijte nějaký .write(). Snad každý operátor se dá přetížit k jakémukoliv účelu. Zda << na číslech funguje jako bitový posun je naprosto irelevantní - hlavně že není problém chápat, co to udělá u té konkrétní třídy.
Přesně tak. To už bychom za chvíli mohli tvrdit, že je C++ špatně navržený jazyk, protože nám dovolí napsat
inline void add_one(int& x)
{
x--;
}
Jen je pak otázka, který jazyk je pak navržený dobře…
add_one(x) ->
x - 1.
badarith). Vy jste ho nezkompiloval a nevyzkoušel. Co to na mě zkoušíte?
Ale zkousel jsem si to zkompilovat. Jenze se mi pri kopirovani do formulare nekde cestou ponizila X. Pardon.
Nicmene, pokud mi neco neuniklo, tak pointa tohoto vlakne je, ze nemuzete nabyt naproste jistoty co se ve skutecnosti bude dit pouze ze jmena operatoru, ale ani funkce nebo metody. A erlang tento problem neresi.
a = b;tak si nikdy nemůžu být jistý, že v
b je na konci to samé jako na začátku. Což je v principu stejný problém jako když napíšub = 1; a = add_one(b);a v b není jednička. To je pak radost takový kód číst. V erlangu můžu napsat
B = (foo, [bar, baz, (1,2,3)], foofoo), A = any_fuckin_function(B)a mám vždy jistotu, že v
B je stále (foo, [bar, baz, (1,2,3)], foofoo) aniž bych se do té funkce musel podívat.
const?
Reference je vlastne ukazatel a je logicke, ze muze funkce menit jeho obsah. I to const se da obejit a nekdy je to nutne, ale to uz neni chyba jazyka.
const je úplně v jiné části kódu, v úplně jiném souboru a kdo ví co ještě a jak sám píšete, dá se to obejít. Takže nejen, že se musím kouknout kdo ví kam, ale dokonce mi ani nestačí přečíst si definici funkce, ale dokonce musím analyzovat její kód, jestli to náhodou někdo neobchází. Fakt moc príma. No a krom toho s každou novou verzí, abych to dělal znova a znova, protože to prostě jde. Taková blbost. Koho to jen mohlo jen napadnout umožnit modifikovat parametry funkce, nebo obsah reference ...
int b = 1; int a = add_one ( (const int) b);v prípade, že neverím funkcii add_one ? (dtto s priradením) ?
to je to isté, ako viacnásobné dedenie. robí problémy, málokto ho používa, a kto tomu nerozumie, ten ma názor davu.
a čo takTo mám psát pokaždé znova a znova? To je fakt řešení, nemám si rovnou dát nohu za krk?int b = 1; int a = add_one ( (const int) b);v prípade, že neverím funkcii add_one ? (dtto s priradením) ?

samozrejme, že nie. V C++ by jeden použil šablóny, v C makrá.
#define add_one_wrapper(b) (add_one ( (const int) b))ale nevravíme každý o tom istom. Toto je riešenie situácie, keď človek neverí
add_one a ani nič o nej nevie. Normálni programátori ale podľa mňa to slovíčko const vkladajú do deklarácie funkcií/metód zo slušnosti hneď.
Uf. No jestli je pointou toto, tak nechapu proc do toho Deda Jablko na zacatku zamotal operator= a proc vy jste se chytil zrovna na referencich. Odstratenim zadneho z obou prvku sveho vysneneho cile nedosahnete.
Ale k podstatnejsi vec: pokud vam na c++ vadi tohle, tak jste tragickym zpusobem nepochopil za jakym ucelem byl navrzen, k cemu je urcen a jaka je jeho filozofie. Ze si s c++ muzete ustrelite nohu raz dva, to vam nikdo nevyvraci, zalezi jen na vas, jestli napr. vsechny parametry vsech funkci budete brat referenci, uvnitr je sestkrat "precastujete" a nahodne v nich invertujete nekolik bitu. Existuji lide, kteri jsou takovemu nutkani schopni odolat a v tomhle smeru nemaji s c++ zadny problem.
Podobnym stezovanim se pak radite k trotlum, kteri se navazeji do lispu kvuli zavorkam, makrum (jak neprehledne a matouci!) a funkcionalnimu programovani (== nema objekty!!!), nebo do erlangu, ze ma dementni syntaxi, nema normalni promenne, pouziva posilani zprav (proto zakonite musi byt 1000krat pomalejsi nez jakykoliv ne-zpravy posilajici, ne-vsechno kopirujici jazyk), ... urcite to znate. Vy jste stejny, akorat sedite o dva zakopy vedle.
... ne-vsechno kopirujici jazyk ...Netušíte jak to funguje.
Jak se v Lispu udělá obdoba DNU? Tedy vlastně úplné zapouzdření.
a.write(b) nema zadne defaultni chovani, proto cloveka nevydesi, kdyz to nekdo implementuje po svem...
c++ znam myslim si, ze dobre, abych vedel, ze je to jazyk, ktery nevi co chce... (stejne jako c# 3.0) ... proste se kolem C naskladala hromada featur bez ladu a skladu a hlubsi koncepce... c++ vam dava dostatecne dlouhe lano a delejte si s nim co chcete... klidne se na nem muzete obesit...
obrat a.write(b) nema zadne defaultni chovani, proto cloveka nevydesi, kdyz to nekdo implementuje po svem...Zdá se mi to, nebo vám doopravdy vadí, že vám jazyk umožňuje udělat něco po svém?
c++ vam dava dostatecne dlouhe lano a delejte si s nim co chcete... klidne se na nem muzete obesit...A to mi na něm přesně vyhovuje. Nepořebuju, aby mi autoři jazyka diktovali, jak mám něco dělat - to vím sám.
Ano, já taky nechápu, proč spousta lidí obhajuje to, že mi jazyk má diktovat jak mám něco dělat. A proč to má být tak úžasná výhoda. Jestli jim to tak vyhovuje, tak ať si takový jazyk najdou. Jsem rád a miluju doslova tu volnost, kterou mi C++ dává - a kdy si můžu vybrat efektivní cestu k řešení problému a pokud vím co dělám, C++ mi vždy vyjde vstříc. Kdo umí psát básně, má rád bohatý jazyk s velkými výrazovými prostředky. Kdo skončil u slabikáře a dál se nedostane, nechť si vybere chudý jazyk, který ho povede.
c++ vam dava dostatecne dlouhe lano a delejte si s nim co chcete... klidne se na nem muzete obesit...
Podle mých zkušeností jazyky, které vám nedají dost lana na oběšení, vám nedají dost lana ani na spoustu užitečných činností, takže mám raději ty, které mi ho dají dost na oboje a způsob použití nechají na mém uvážení. A to se netýká jen jazyků, ale třeba i operačních systémů. A to říkám jako člověk, který si před pár hodinami spílal do hlav skopových poté, co v příkazu 'init q' místo kvéčka ze zvyku napsal jedničku… :-)
boost::spirito.i. i pekný príklad zmysluplného overloadovania operátorov