Это хорошо для меня, чтобы предположить в C или C++ или JavaScript или любой другой современный язык, что если я делаю ...C++ оптимизация логическое выражение
bool funt1(void) {…}
bool funt2(void) {…}
if (funt1() && funt2()) {Some code}
... Могу ли я гарантировать, что обе функции вызываются или если funt1
возвращается false может ли компилятор поручиться на меня и никогда не звонить funt2
?
в большинстве языков - если funt1 возвращает ложь, второй не будет называться –
[оценка короткого замыкания] (http://en.wikipedia.org/wiki/Short-circuit_evaluation) – quantdev
Почему нет короткого замыкания в C++ для перегруженных операторов: http://stackoverflow.com/questions/25913237/is-there-actually-a-reason-why-overloaded-and-dont-short-circuit – Deduplicator