Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Jiří Havel

Stran: 1 ... 8 9 [10] 11 12 ... 22
136
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 04. 09. 2020, 08:53:54 »
Ano, což ale není zhoršení oproti papírovým volbám, kde je možné úplně to samé. Za peníze také můžete někomu slíbit, jak budete hlasovat – a většina lidí, která by to udělala, by tak skutečně i hlasovala. Ten, kdo by takhle hlasy nakupoval, samozřejmě riskuje, že se pár lidí pokusí podvést podvodníka, slíbí hlasovat nějak, ale pak ve skutečnosti budou volit podle sebe. A to samé by bylo i u elektronické volby – většina lidí, která by se nechala zlákat penězi, by svůj průkaz předala a nevolila by, no a pár lidí by kopii svého průkazu dala tomu „náčelníkovi“, ale pak by po něm stejně odvolila podle sebe – a protože by to bylo později, platil by jejich hlas.
Jo, do chvíle než by si náčelník svůj hlas zkontroloval, zmlátil voliče jak psa (příklad) a znova to přebil svým hlasem. Pokud by volič náhodou zvládl zahlasovat tak, aby to náčelník přebít nestihl, tak dostane nakládačku na jakou do smrti nezapomene. Pokud si svůj hlas může zkontrolovat volič, pak to samé může udělat i náčelník.

137
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 03. 09. 2020, 22:45:50 »
Opravdu? Kdybyste měl pravdu, tak nemáme hromady elementárních bezpečnostních děr. SQL injekce nebo úniky neosolených a nezahashovaných hesel jsou ukázkový případ takového blbého použítí. Někdo schopný kontrolovat
systémy pro elektronické volby by měl minimálně tyhle elementární bezpečnostní zásady ovládat.
Já jsem nepsal, že to umí každý. Ale kdyby to opravdu umělo jen pár lidí na světě, jak tvrdíte vy, měli bychom také jen pár aplikací, kde by nebyla známá žádná zranitelnost typu SQL injekce nebo úniky neosolených a nezahashovaných hesel.

Takže ne, neumí to ani ti, co by to měli mít v popisu práce.
Netrvám na tom, že software používaný elektronickými volbami musí umět zkontrolovat každý, kdo si splácal blogísek v PHP.

Navíc asi stále nechápete, že vámi popsané úniky jsou způsobené tím, že data, která měla zůstat tajná, jsou zveřejněna. Zatímco u voleb chceme pravý opak – zveřejnit toho co nejvíc, ideálně všechno. Jediná tajná „informace“ má být to, komu byl vydán jaký elektronický voličský průkaz. A tato informace nesmí nikdy ani vzniknout – a když neexistuje, nemusíte řešit její utajení.

No a veřejné informace se ověřují celkem dobře, protože můžete napsat libovolný počet implementací, a ty se musí ve výsledcích shodnout. Pokud se neshodnou, je chyba buď v některé implementaci, nebo ve specifikaci.


Kdybyste specifikoval který váš komentář máte na mysli, tak by se na to dalo nějak reagovat.
Svým minulým komentářem myslím komentář, který jsem odeslal já, a který bezprostředně předcházel komentáři, ve kterém jsem na něj odkazoval. Když teď napíšu „můj minulý komentář“, znamená to číslo 136. Když jsem v komentáři č. 135 napsal: „Od minulého komentáře, kde jsem to vysvětloval,“ odkazoval jsem se tím na komentář č. 131.

Současný stav je, že to hlídá zatraceně hodně lidí. A jsou dobře rozdistribuovaní, takže to můžou hlídat příslušné malé kousky.
Stále nechápete, že z toho „zatraceně hodně lidí“ jich většina hlídá jen malou část, kterou tím pádem hlídá pár lidí, kteří mohou selhat. A také vám nějak uniká, že údaje z okrskových volebních komisí se zadávají do softwaru, který nakonec spočítá celkové výsledky. Kolik lidí kontroluje tuhle část?

To je principielní rozdíl proti ověřování SW, kde občas díry smrdí roky, než si jich někdo všimne. Protože kontrola SW se takhle na nezávislé dílky rozdělit nedá.
Je trochu rozdíl mezi Malováním a bankovním softwarem nebo softwarem pro elektronické volby. V bezpečnostně citlivém softwaru se dělají cílené audity zaměřené na bezpečnost.

A také stále nechápete, že u rozumně navrženého volebního protokolu nebude možné chybnou implementací software falšovat hlasování. Jediné, čeho byste dosáhl útokem na chyby v takovém softwaru, je to, že by někdo nehlasoval, i když by chtěl.

Představte si to třeba na softwaru pro ověřování elektronických certifikátů. Můžete tam mít chybu, která vám zobrazí chybné údaje. Může tam být chyba, která platný certifikát prohlásí za neplatným, nebo chyba, která neplatný certifikát prohlásí za platný. To vše je ale snadno řešitelné tak, že ty programy budete mít dva, a výsledky porovnáte. Ale nikdy se vám nemůže stát, že tím softwarem omylem vyrobíte platný certifikát s jinými údaji.

Nedá minimálně bez úprav pro české prostředí a zákony.
To znamená úpravy, zda a kolikrát je možné změnit svůj hlas, případně zda se volí jedna kandidátka, nebo zda tam jsou nějaké preferenční hlasy apod. To nejsou změny, které by nějak zasahovaly do bezpečnostní části a které by bylo obtížné ověřit.

A zopakuju to znova. Vy jste totiž plácl akorát. "Distribuovat elektronické voličské průkazy můžete stejně, jako se distribuují ty papírové." Sorry, ale tohle je totální blbost. U těch papírových nepotřebujete aby byly unikátní.
Jako že si dojdu na obecní úřad desetkrát, oni mi vydají deset voličských průkazů a já pak budu moci volit desetkrát? Ne takhle to opravdu nefunguje. Funguje to tak, že dojdu na úřad, kde jsem zapsaný v seznamu voličů, řeknu, že chci voličský průkaz, oni mne vyškrtnou ze seznamu voličů a dají mi voličský průkaz. Pokud bych tam na seznamu voličů nebyl (nebo už byl vyškrtnutý), nic nedostanu. Vydávat elektronický voličský průkaz akorát znamená před vydáním voličského průkazu se zeptat „a chcete papírový nebo elektronický?“ a podle toho vydat papírový nebo elektronický průkaz.

Ani lístky ani ta obálka co nafasujete od komise nemusí být unikátně identifikovatelná. Dokonce pokud se odhalí, že jsou, tak je to blbě.
Obálka i lístky jsou něco jiného, než voličský průkaz. Voličský průkaz musí být unikátní – každému občanovi, který byl vyškrtnut ze stálého volebního seznamu, musí být vydán právě jeden voličský průkaz (papírový nebo elektronický). Elektronický voličský průkaz pak musí být anonymní.

Pokud hodíte někomu do schránky voličský průkaz, u kterého pak umíte poznat poslední volbu, pak umíte ty hlasy zpětně přiřadit minimálně k domácnostem.
Ale já jsem nikde nepsal, že budu identifikovaný voličský průkaz někomu házet do schránky.
Jo takhle. Až do příspěvku 131 jste psal o elektronických volebních lístcích a já nějak přehlédl, že jste přešel na voličský průkaz. Tohle už začíná dávat smysl.

138
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 03. 09. 2020, 19:10:24 »
Tohle jsou stavební kameny. Pokud jsem to napsal nejednoznačně, tak mi jde o spolehlivost high level funkcí. Stavební kameny jsou prověřené, ale dají se strašně jednoduše použít blbě.
Ty high level funkce zase umí zkontrolovat strašná spousta lidí.
Opravdu? Kdybyste měl pravdu, tak nemáme hromady elementárních bezpečnostních děr. SQL injekce nebo úniky neosolených a nezahashovaných hesel jsou ukázkový případ takového blbého použítí. Někdo schopný kontrolovat systémy pro elektronické volby by měl minimálně tyhle elementární bezpečnostní zásady ovládat.
Takže ne, neumí to ani ti, co by to měli mít v popisu práce.
Citace
U banky jde třeba o "ověření že platbu zadal oprávněný člověk".

Anonymita voleb by měla odolat i soudnímu příkazu. Běžné banky něco takového umět ani nesmí.
Od minulého komentáře, kde jsem to vysvětloval, se v tomto ohledu nic nezměnilo.
Kdybyste specifikoval který váš komentář máte na mysli, tak by se na to dalo nějak reagovat.
Citace
Že to může spousta lidí ověřit zvyšuje bezpečnost oproti stavu, kdy to může ověřit jen málo lidí (což je současný stav).
Současný stav je, že to hlídá zatraceně hodně lidí. A jsou dobře rozdistribuovaní, takže to můžou hlídat příslušné malé kousky.

To je principielní rozdíl proti ověřování SW, kde občas díry smrdí roky, než si jich někdo všimne. Protože kontrola SW se takhle na nezávislé dílky rozdělit nedá.
Citace
Lidí, kteří mohou zkontrolovat systém pro elektronické volby, je i v ČR spousta.
Ne, spousta je maximálně těch, co si to o sobě myslí.
Citace
Navíc ten systém nemusí být specificky český, stejný systém se dá používat ve spoustě států.
Nedá minimálně bez úprav pro české prostředí a zákony.
Citace
I v případě elektronických lístků nevidím žádné evidentně otevřené dveře. Jak je chcete distribuovat? Každý volič musí dostat právě jeden a nesmí ho umět vygenerovat někdo jiný. Každý lístek musí jít použít jenom jednou, takže musí být jednoznačně identifikovatelný. Ale zároveň nesmí být zpětně spojitelný s voličem.
A voliče s lístkem by nemělo spojit ani to, když si bude svůj hlas ověřovat.
Distribuovat elektronické voličské průkazy můžete stejně, jako se distribuují ty papírové. Aby byl jednoznačně identifikovatelný není problém, volba jen jednou také ne – jednotlivá hlasování jsou seřazena chronologicky za sebou, takže platí poslední volba daného průkazu. Volba daného průkazu by byla veřejná, takže by si to mohl ověřit kdokoli – tím to nijak zpětně spárovat nepůjde.

Nejkritičtější místo je to vydávání voličských průkazů, které se ovšem dá dělat úplně stejně, jako dnes, takže to nebude méně bezpečné.

Já nepředpokládám nic takhle stupidního.
Opakovaně jste zmiňoval, že je problém, aby volba byla anonymní.
A zopakuju to znova. Vy jste totiž plácl akorát. "Distribuovat elektronické voličské průkazy můžete stejně, jako se distribuují ty papírové." Sorry, ale tohle je totální blbost. U těch papírových nepotřebujete aby byly unikátní. Ani lístky ani ta obálka co nafasujete od komise nemusí být unikátně identifikovatelná. Dokonce pokud se odhalí, že jsou, tak je to blbě.
Pokud hodíte někomu do schránky voličský průkaz, u kterého pak umíte poznat poslední volbu, pak umíte ty hlasy zpětně přiřadit minimálně k domácnostem.


139
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 03. 09. 2020, 14:21:33 »
Tak třetí pokus o odpověď. Možná že jde psát software bez chyb, ale lidi to zatím neumí.
Elektronické volby vyžadují algoritmy, které žádná banka na světě nepoužívá.
Psal jste o kryptografických algoritmech. Těch je pár a banky je používají všechny – šifrování, podepisování, hashování, šifrované spojení.
Tohle jsou stavební kameny. Pokud jsem to napsal nejednoznačně, tak mi jde o spolehlivost high level funkcí. Stavební kameny jsou prověřené, ale dají se strašně jednoduše použít blbě. U banky jde třeba o "ověření že platbu zadal oprávněný člověk".

Anonymita voleb by měla odolat i soudnímu příkazu. Běžné banky něco takového umět ani nesmí.
Citace
Malý počet lidí je bezpečnostní díra sama o sobě. Vy do toho _chcete_ namočit co nejvíc lidí, aby díky redundanci neměl jeden člověk moc velký vliv.
Chytil jste se do vlastní pasti nepřesného vyjadřování. Čím víc lidí to může ověřit, tím je to bezpečnější. U elektronických voleb může spoustu věcí ověřit kdokoli – nezávisí to na tom, že se dostane k protokolům nebo dokonce k fyzickým lístkům. A zároveň je to bezpečnější, pokud neplatí, že bezpečnost závisí na jednom nebo několika málo lidech. A to je zase problém papírových voleb – v každém okrsku to závisí na pár členech volební komise. Opět to není problém elektronických voleb, protože lidí schopných navrhnout a implementovat kryptografické algoritmy je po celém světě dost, lidí schopných navrhnout a implementovat volební protokol je ještě daleko více.
Že to může spousta lidí ověřit je maximálně tak bonus. Důvěryhodnost voleb vychází z něčeho jiného.
- Musí v tom být namočených spousta lidí. A navíc jsou rozdistribuovaní tak, že jeden člověk nemůže napáchat moc škod.
- Musí v tom mít osobní zájem. Pak se můžu spolehnout, že budou ten svůj dílek dělat pořádně.
Pokud jsou splněné tyhle dvě podmínky, pak můžu věřit procesu i když si dílčí části nemůžu sám zkontrolovat.
Lidí, kteří můžou zkontrolovat nějaký systém pro elektronické volby na světě zase tak moc není. A těch, co mají zároveň osobní zájem na volbách v nějaké ČR je krutě málo. Nejsem si jistý, jestli každá zajímavá strana někoho takového má.
Citace
Může se ztratit ještě před přidáním do stromu.
Což ovšem volič zjistí a bude hlasovat znovu.

Jeden strom se může nahradit jiným.
Nemůže. Teda může, ale v tom jiném stromu nenajdou své hlasy všichni ti, kteří volili v prvním stromu.
Tohle vyžaduje nezávislý kanál, kterým by volič ověřil, jestli hlas dorazil až do cíle. Bez toho se dá samozřejmě zaútočit na hlasování i ověření. Třeba při hlasování z domova se to bude zajišťovat hodně těžko.
Citace
Navíc by kvůli anonymitě neměl být žádný záznam z toho stromu zpětně spárovatelný s člověkem.
Samozřejmě. Celou dobu se tu bavíme o volbě pomocí elektronického volebního lístku, který se nedá spárovat s konkrétním člověkem. Vlamujete se do otevřených dveří.
I v případě elektronických lístků nevidím žádné evidentně otevřené dveře. Jak je chcete distribuovat? Každý volič musí dostat právě jeden a nesmí ho umět vygenerovat někdo jiný. Každý lístek musí jít použít jenom jednou, takže musí být jednoznačně identifikovatelný. Ale zároveň nesmí být zpětně spojitelný s voličem.
A voliče s lístkem by nemělo spojit ani to, když si bude svůj hlas ověřovat.
Citace
Bez konkrétní specifikace se nedá konkrétněji uvažovat o bezpečnostních dírách, protože těch možností je nespočetně.
Tak nepředpokládejte ty nejhloupější možné specifikace. Zatím vyvracíte bezpečnost elektronických voleb tak, jako by měly být realizovány pomalu tak, že se bude e-mailem posílat: „Já, František Novák, hlasuju pro US.“ To ale nikdo nechce.
Já nepředpokládám nic takhle stupidního. Sám jste zmiňoval hashové stromy, takže jsem předpokládal něco, co je interně používá. Ale tohle stále moc možností nevyloučí.

Zásadní problém všech systémů pro elektronické volby je, že pro drtivou většinu populace je to totální černá magie. U papírových voleb má většina lidí hrubou představu, jak to funguje. To dělá elektronické volby velmi jednoduše napadnutelné propagandou.

140
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 02. 09. 2020, 22:09:31 »
Těch pár členů tam poslaly různé strany, z nichž každá chce vyhrát. Takže věřím tomu, že mají motivaci hlídat, aby ti druzí fixlovat nemohli.
Kromě téhle motivace nemusí mít žádné extra speciální dovednosti, takže v každé dědině se pár najde. Lidí schopných ověřovat krypto algoritmy je u nás výrazně míň než členů volebních komisí v menším městečku.
Papírové volby hlídá mračno lidí. I kdyby někoho z nich podplatili nebo vydírali, tak to bude mít jenom lokální dopad. Už jen počet lidí schopných kontrolovat elektronické volby z nich dělá výhodný cíl.
Jenže ty kryptografické algoritmy ověříte jednou globálně, a máte vystaráno. A už se to dávno stalo, třeba kvůli bankám – a pro spoustu lidí budou peníze důležitější, než volby. Kromě kryptografických algoritmů je potřeba zkontrolovat ještě kryptografické protokoly, ale to už je jednodušší a zase se to udělá jednou pro celý protokol, který pak může používat víc států. A pak už zbývá ověřit jen implementaci, což se dá dělat i automaticky (protože dobrý protokol jde ověřit z venku – např. pokud se vám podaří správně dešifrovat zašifrovaný text, nemusíte znát implementaci toho dešifrování, ale víte, že je správná).
Která banka potřebuje _zaručeně anonymně_ sbírat názory lidí? Elektronické volby vyžadují algoritmy, které žádná banka na světě nepoužívá. A spousta jich používat ani nesmí (kvůli praní špinavých peněz a podobným věcem). Ty elektronické volby musí být odolné i proti soudnímu příkazu.
Vy umíte automaticky ověřit že v nějakém softwaru není bezpečnostní díra? Že v hardwaru na kterém běží není bezpečnostní díra? Ne neumíte! Fakt ne! Napsat software který něco správně dešifuje je trivka. Ty složité a nebezpečné věci jsou úplně jinde.
Citace
Papírové volby hlídá mračno lidí, protože je tam spousta míst, kde se dá podvádět. U elektronických voleb snadno ověříte volby v celé republice – nepotřebujete tisíce lidí, aby hlídaly každý okres, když vám desítky lidí mohou zkontrolovat celou ČR.
Malý počet lidí je bezpečnostní díra sama o sobě. Vy do toho _chcete_ namočit co nejvíc lidí, aby díky redundanci neměl jeden člověk moc velký vliv.
Citace
tak přesně takle se jakoby muže ztratit i 'elektronicky' odevzdanej hlas
Nemůže. Existují struktury, které umožňují detekovat jakoukoli změnu v historii – např. Merkleův strom (používaný třeba v blockchainu). Každý navazující záznam v sobě odkazuje jednoznačný odkaz na předchozí, takže jakmile z řetězce nějaký článek vypadne, pozná se to.
Může se ztratit ještě před přidáním do stromu. Jeden strom se může nahradit jiným. Navíc by kvůli anonymitě neměl být žádný záznam z toho stromu zpětně spárovatelný s člověkem.
Bez konkrétní specifikace se nedá konkrétněji uvažovat o bezpečnostních dírách, protože těch možností je nespočetně.

141
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 02. 09. 2020, 13:59:17 »
Dostaly se tam tak, že je před očima komise někdo hodil dovnitř. Proto je ta urna zapečetěná a otvírá ji celá komise.
Zapečetěná urna nezaručuje, že do ní někdo nehodí další lístky. Když je volební místnost otevřená, má tam být volební komise, mimo „provozní dobu“ by měla být urna v zavřené a zapečetěné volební místnosti. Jenže tomu, že to tak bylo, musíte věřit – a věříte pár členům volební komise. Těch expertů schopných ověřit kryptografické algoritmy je mnohem víc.
Těch pár členů tam poslaly různé strany, z nichž každá chce vyhrát. Takže věřím tomu, že mají motivaci hlídat, aby ti druzí fixlovat nemohli.
Kromě téhle motivace nemusí mít žádné extra speciální dovednosti, takže v každé dědině se pár najde. Lidí schopných ověřovat krypto algoritmy je u nás výrazně míň než členů volebních komisí v menším městečku.
Papírové volby hlídá mračno lidí. I kdyby někoho z nich podplatili nebo vydírali, tak to bude mít jenom lokální dopad. Už jen počet lidí schopných kontrolovat elektronické volby z nich dělá výhodný cíl.

142
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 02. 09. 2020, 11:26:55 »
Ale kromě toho zůstane i papírový protokol a zůstanou i ty lístky, takže je půjde přepočítat znova.
Elektronické lístky také můžete přepočítat znova. Problém u papírových lístků je v tom, že netušíte, jak se do toho výběru dostaly.
Dostaly se tam tak, že je před očima komise někdo hodil dovnitř. Proto je ta urna zapečetěná a otvírá ji celá komise.
Citace
Při jakékoliv pochybnosti se dají ty algoritmy úplně vyřadit ze hry. Pomohl jsem si tak, že mám úplně nezávislý kanál.
Nemáte žádný nezávislý kanál a žádné algoritmy jste ze hry nevyřadil – pořád jste závislý na tom, že ve volební urně byly jenom ty lístky, které tam měly být, a že komise právě jen platné lístky předala k archivaci.
To je ošetřené tím, že do volebních komisí strany posílají své lidi, kterým věří. Až zbytek se doplňuje z dobrovolníků. A veškerá manipulace s urnou se děje před očima té komise.

143
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 01. 09. 2020, 20:15:09 »
Budete věřit slovu pár expertů? […] Hlídat počítání lístků zvládne libovolná tetka z Horní Dolní.
Jenže pak ty počty sečtených lístků napíše do počítače a pošle se to šifrovaným spojením do ústřední volební komise. Pro to šifrování a podepisování se používají úplně stejné algoritmy, jaké by se používaly v případě elektronických voleb. Takže jste si nijak nepomohl.
Ale kromě toho zůstane i papírový protokol a zůstanou i ty lístky, takže je půjde přepočítat znova. Při jakékoliv pochybnosti se dají ty algoritmy úplně vyřadit ze hry. Pomohl jsem si tak, že mám úplně nezávislý kanál.

144
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 01. 09. 2020, 16:55:27 »
Volebni system zalozeny na blockchainu by tohle resil, a jsou projekty ktere maji tyto ambice.
Jakýkoliv elektronický systém má dva primární zádrhele :

1) Důvěryhodnost algoritmu. Ověřit nějaký kryptografický/blockchainový algoritmus zvláde zanedbatelný zlomek populace. Budete věřit slovu pár expertů?

2) Důvěryhodnost implementace. I pokud věříte algoritmu, samotná implementace poskytuje hromadu možných vedlejších kanálů. Implementace krypto věcí občas vyžadují velice zajímavé techniky. Jak můžou zainteresované strany ověřit, že implementace dělá co má?

Hlídat počítání lístků zvládne libovolná tetka z Horní Dolní. Lidí schopných ověřovat nějaké krypto věci bude v politice krutě málo.

145
Vývoj / Re:C++ načo slúži constexpr?
« kdy: 31. 08. 2020, 14:31:43 »

Constexpr funkce _se dají_ vyhodnotit během překladu. Jestli se tak stane je na libovůli překladače. V tom jsou trochu slabší než constexpr proměnné. Takže c++20 zavedlo consteval funkce, které jsou tutově vyhodnocené během překladu.

Moment, neni garantovane ze se constexpr funkce vyhodnoti v compiletime v pripade, ze dostane "constexpr" argumenty?
(A ta hodnota je nekde vyuzita, jinak se asi odoptimalizuje, to chapu)
Jistý si tím úplně nejsem. Standardština není nic pro lidi :P Vsude jsem četl že constexpr funkce můžou vrátit konstantní výraz. Ale nenašel jsem garanci, že se to stane i když to není nutné (třeba že výsledek se cpe do normální a ne constexpr proměnné). Obvykle se to asi stane, ale vždycky bych na to asi nespoléhal.

A pak taky není vždycky na první pohled vidět, jestli má funkce na vstupu constexpr nebo obyč věci. Může to změnit nějaká na první pohled nesouvisející změna v kódu.

146
Odkladiště / Re:Bezpečnost elektronických voleb
« kdy: 30. 08. 2020, 14:10:50 »
Chtěl bych oživit tuto mrtvolku aktuálním tématem. Opakovaně zde a ve vedlejší diskuzi zaznívalo, že papírové volby nejde large-scale manipulovat, protože byste museli podplatit každou volební komisi, kterých je moc.

Co se stalo v Bělorusku?
Papírové volby je těžké manipulovat, protože je třeba ovlivnit hromadu lidí. To je náročné a hrozí že to praskne.
Ale pak samozřejmě záleží na tom, jestli má někdo potřebné prostředky a moc. A taky co se stane, pokud to praskne.

Někdo jako Lukašenko má dostatečnou moc a hrozí mu zatraceně málo. V Bělorusku prostě všichni mimo pár fanatiků tuší, že je to totální fraška. Akorát se k tomu různí lidé staví různě.

V našem kontextu je taková manipulace výrazně méně pravděpodobná.

147
Vývoj / Re:C++ načo slúži constexpr?
« kdy: 29. 08. 2020, 13:54:55 »
Překladače (snad kromě MSVC) dneska optimalizují kde co, třeba `std::sin(1.0)` se vyhodnotí už při compile-time.
To jo, ale ve spoustě věcí se to chová jako by to stále vyhodnocoval až za běhu. Pokud to není constexpr, pak to nejde použít pro věci jako velikosti polí nebo ty immediate parametry intrinsik.

A taky není jisté, že to opravdu v tom compile time vyhodnotí. To je zase důležité pro pořadí inicializace globálních proměnných.

148
Vývoj / Re:C++ načo slúži constexpr?
« kdy: 29. 08. 2020, 09:37:15 »
Ak som to správne pochopil, tak constexpr resp. consteval, dovoluje niečo podobné ako makrá (samozrejme to zjednodušujem), len to neprekladá prerocessor, ale priamo prekladač C++ a tým pádom to má ako bonus rovnakú syntax ako C++ a taktiež sa tam oproti makrám checkujú typy.
Bacha, preprocesor nic nevyhodnocuje. Ten jenom lepí dohromady kusy textu. Když budete pomocí maker dělat cokoliv jiného než výpočty s inty, tak se to provede až za běhu (teď ignoruju optimalizace, ale ty nemění princip). Pomocí constexpr můžete spočítat třeba velikost pole a místo intů použít vlastní objekty. Přes makra to jde jenom s obyčejnými inty, protože ty mají speciální zacházení.

149
Vývoj / Re:C++ načo slúži constexpr?
« kdy: 27. 08. 2020, 22:36:14 »
Jde o výpočty během překladu. Třeba pro nahrazení šablonového metaprogramování něčím, co se dá i číst. :)

Constexpr proměnné překladač inicializuje během překladu. Je jisté, že se nic nebude počítat za běhu.
- U constexpr globálních proměnných nehrozí problémy s pořadím inicializace. Všechno bude připravené v .data sekci.
- constexpr proměnné se dají použít pro velikosti polí, nebo třeba pro immediate parametry sse intrinsik.

Constexpr funkce _se dají_ vyhodnotit během překladu. Jestli se tak stane je na libovůli překladače. V tom jsou trochu slabší než constexpr proměnné. Takže c++20 zavedlo consteval funkce, které jsou tutově vyhodnocené během překladu.
- do constexpr proměnných se celkem logicky dají nacpat jen výsledky constexpr funkcí.

Třetí použití je "if constexpr (...)", které se taky vyhodnotí během překladu. Hodí se tam, kde by se obyčejný if vůbec nepřeložil. U obyčejného ifu musí jít obě větve přeložit i když je při překladu jasné, že se jedna nikdy neprovede.

150
Vývoj / Re:C++ chybové hlásenia a kruhové závislosti
« kdy: 21. 08. 2020, 11:26:35 »
Pokud to jen trochu jde, tak je dobré se kruhovým závislostem vyhnout. Není to nic specifického pro C++.

Pokud je to opravdu nutné, tak se závislosti dají rozetnout přes forward deklarace :
Kód: [Vybrat]
// Foo.h :

struct Bar;
struct Foo {
  void Work( const Bar &bar );
};

// Foo.cpp :
#include "Foo.h"
#include "Bar.h"

void Foo::Work( const Bar &bar )
{
}

Princip je ten, že na pointer nebo referenci stačí o typu vědět, že existuje. Takže do headerů se nacpou forward deklarace a samotné includy přijdou až do .cpp. Pak je jedno, v jakém pořadí se Foo.h a Bar.h includují. Bar.h a Bar.cpp budou vypadat podobně.

Stran: 1 ... 8 9 [10] 11 12 ... 22