Verwenden Sie die Operatoren & amp; = und | = für Bool-Kurzschluss?

Beim schreiben von code, wie dies in C++:

bool allTrue = true;
allTrue = allTrue && check_foo();
allTrue = allTrue && check_bar();

check_bar() wird nicht ausgewertet, wenn check_foo() zurückgegeben false. (Dies ist anscheinend genannt lazy evaluation

EDIT: Oder nicht, wie schon in den Kommentaren. Es heißt durch kurzschließen oder mit short-circuit-evaluationsondern ist Teil der lazy-evaluation-Prinzip)

Funktioniert das mit der compound assignment operator &=?

bool allTrue = true;
allTrue &= check_foo();
allTrue &= check_bar(); //what now?

Für logische OR alle ersetzen & mit | und true mit false.

InformationsquelleAutor der Frage iFreilicht | 2014-04-16

Schreibe einen Kommentar