C++ kurzschließen der booleans

Ich bin neu in c++ und bin gespannt, wie der compiler verarbeitet lazy evaluation von booleans. Zum Beispiel,

if(A == 1 || B == 2){...}

Wenn A nicht gleich 1 ist, ist B==2 Teil auch schon mal bewertet?

  • wow, das war der Schnellste 6 Antworten je. danke Jungs.
  • Sie könnte getestet werden, indem Sie eine Funktion erstellen, mit der eine Nebenwirkung (d.h., etwas drucken nach standard-out) und bringen es in die zweite position (unter der Annahme, dass die erste Bedingung false ist). Auch die Doku sagt uns, dass || ist ein Kurzschluss-operator.
  • aber wo wäre der Spaß in der Beobachtung alle diese Antworten fließen in?
  • beachten Sie, dass es hat nichts zu tun mit der lazy evaluation. Während es stimmt, dass lazy Bewertung der Sprachen machen dieses Verhalten trivial zu implementieren; in C/C++ - Fall, es ist nur für Sie zusammengestellt gleichbedeutend mit einer Reihe von verschachtelten ifs.
  • Tests sind kein Ersatz für Normen und Dokumentation.
InformationsquelleAutor tinkertime | 2009-11-25
Schreibe einen Kommentar