#1 FFilip13
if ( operacie == true)
Jedno '=' je priradenie, dve su porovnanie. Slusny prekladac ti vyhodi warrning.
zajimave.. jako by tu byla jen odpoved... mimochodem slusny programator by mel dat if (true == operacie) pak to nevyhodi jen warning, ale error pokud je jen = :)
nevidim duvod proc by se to melo spatne cist.. krom toho to zacatecnikum usetri hodiny hledani chyb (nekterejm i tydny kdyz to tu obcas sleduju, jak flexibilne resi problemy)
#4 KIIV
Já si myslím, že vzhledem k tomu, že pokud u zjištění stavu bool proměnné nestačí jenom uvedení té proměnné a je potřeba ji porovnat s true, dostaneme hodnotu typu bool. Tu je tedy podle předešlé podmínky potřeba porovnat s hodnotou true, což je zase výsledek typu bool. A tak dále. Občas se to dá prostřídat s != false, ale pořád to bude super čitelné :-)
Ale vážně - osobně konstrukci bool_value == true nemám rád, ale je to celkem jedno, jestli se v programu objeví. Každému se čte dobře to, na co je zvyklý. Jenom to pak může umožňovat podivnosti jako
if (nejaka_funkce(a, bcde, fgh, ij, kl, mn, op, qr, st, uv, wx) == false)
kde při troše štěstí to porovnání vyjede mimo okno a pak je čitelnost v čudu.
A stejně, pokud se chce, tak se dá "znečitelnit" cokoliv, hlavně když se využije nějaká implicitní konverze:
#include <iostream>
int fn()
{
return 3;
}
int main()
{
std::cout << (fn() == true ? "true" : "false") << '\n';
}
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku