Іноді if
висловлювання може бути досить складним або довгим, тому для читабельності краще витягувати складні дзвінки перед if
.
наприклад це:
if (SomeComplicatedFunctionCall() || OtherComplicatedFunctionCall())
{
// do stuff
}
в це
bool b1 = SomeComplicatedFunctionCall();
bool b2 = OtherComplicatedFunctionCall();
if (b1 || b2)
{
//do stuff
}
( При умови , приклад не що погано, це просто для ілюстрації ... уявіть собі інші виклики з декількома аргументами, і т.д.)
Але завдяки цьому вилученню я програв оцінку короткого замикання (SCE).
- Чи я щоразу втрачаю SCE? Чи існує якийсь сценарій, коли компілятору дозволяється "оптимізувати його" і при цьому надавати SCE?
- Чи є способи зберегти покращену читабельність другого фрагмента без втрати SCE?