&& und || checks optimieren
-
Gibt es eine webseite oder so bei der man Verknüpfungen
von booleans eingeben kann und die berechnet einem eine
optimierte Version davon ?Ich hab:
if (!(Child[2] || Child[1]) && m->NeighbourB->SubDivide || (Child[1] && !Child[2]) || (!Child[1] && Child[2]))wobei alles bool variablen sind und würde gerne wissen ob
es noch eine vereinfachte/zusammengefasste version gibt
die aber 100% genau das gleiche liefert
Ich weiß das der aktuelle VC++ compiler schon viel optimiert
aber keine Ahnung ob der das noch superduper analysiert
und umbaut. Er wird es bestimmt schon irgendwie optimieren
aber wie weit weiß ich nicht und das disassembly würde ich
jetzt dafür nicht unbedingt analysieren wollen
Also villeicht gibt es ja so eine page ?
-
da denke ich gleich an http://de.wikipedia.org/wiki/Karnaugh-Veitch-Diagramm und würde nach applets suchen, die sowas können.
der c++-compiler soll sowas nicht können dürfen. der programmierer macht hier schon gutes werk und anscheinende fehler sind immer absicht.
-
(Child[1] && !Child[2]) || (!Child[1] && Child[2])Das ist eine Antivalenz, du kannst sie mit dem entsprechenden ^-Operator abbilden,
sprich:Child[1] ^ Child[2]Das KV-Diagramm darfste aber selbst Zeichnen

gruss
v R
-
virtuell Realisticer schrieb:
(Child[1] && !Child[2]) || (!Child[1] && Child[2])Das ist eine Antivalenz, du kannst sie mit dem entsprechenden ^-Operator abbilden,
sprich:Child[1] ^ Child[2]Das KV-Diagramm darfste aber selbst Zeichnen

gruss
v Roder einfach != benutzen...
-
camper schrieb:
virtuell Realisticer schrieb:
(Child[1] && !Child[2]) || (!Child[1] && Child[2])Das ist eine Antivalenz, du kannst sie mit dem entsprechenden ^-Operator abbilden,
sprich:Child[1] ^ Child[2]Das KV-Diagramm darfste aber selbst Zeichnen

gruss
v Roder einfach != benutzen...
Falls der nicht überladen ist!
Beispiel:
Child[1] == 5 Child[2] == 6 (Child[1] != Child[2]) == true
-
Michael E. schrieb:
Falls der nicht überladen ist!
Beispiel:
Child[1] == 5 Child[2] == 6 (Child[1] != Child[2]) == truehier ging es nur um bools - sobald andere datentypen oder überladungen im spiel sind, ist das ohnehin nicht allgemein machbar. ^ würde hier auch nicht funktionieren. != halte ich hier für eine bessere wahl als ^, weil != selbst ein boolscher operator ist. man könnte nat. argumentieren, dass ein operator ^^ nur deshalb nicht existiert, weil er de facto überflüssig wäre; kurzschlussauswertung ist ja für diese operation nicht möglich.
-
ah jo danke stimmt lol kann ich ja einfach
nen Child[1] != Child[2] draus machen *gg*