möglicherweise eine ziemlich blöde Frage ich habe einen kleinen Bool Expression Interpreter geschrieben und versuche dafür jetzt einen Operator Prioritäts-Unit-Test zu machen der absichert das sich mein Interpreter an den C++ Standard hält: https://en.cppreference.com/w/cpp/language/operator_precedence für || und && ist das ja relativ einfach: https://en.cppreference.com/w/cpp/language/operator_precedence aber für eine Prio Prüfung von == und ||(oder &&) fällt mir nichts ein ich bekomme kein Beispiel hin bei dem die Prio zu einem anderen Ergebnis führt wenn die Prio falsch ist Jemand eine Idee, ich kann && || == und Klammern // Beispiel-Code um die Prio für C++ zu testen int main() { // && und || Prio pruefen constexpr bool and_prio_ueber_or = true || false && false; constexpr bool prio_ungleich = and_prio_ueber_or != (false && true or true); static_assert(and_prio_ueber_or, "Fehler: && hat niedrigere prio als || ?"); static_assert(!prio_ungleich, "Fehler: prio gleich ?"); //aber wie kann ich prüfen ob == eine hoehere Prio hat als &&? return 0; }
if (0 == 1 && 0) => 1 wenn && enger bindet als == => 0 wenn == enger bindet als &&
cppbert schrieb: > //aber wie kann ich prüfen ob == eine hoehere Prio hat als &&? false && true == false Oliver
Oliver S. schrieb: > cppbert schrieb: >> //aber wie kann ich prüfen ob == eine hoehere Prio hat als &&? > > false && true == false > > Oliver Danke
Hannes schrieb: > if (0 == 1 && 0) > > => 1 wenn && enger bindet als == > => 0 wenn == enger bindet als && Auch viel Dank euch beiden für das lösen meiner Gehirnbremse :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.