У меня есть savePotentiometerState(...)
-функция, которая возвращает true
, если были изменения, чтобы сохранить, и false
, если ничего не было сделано.Кроме того, я знаю, что при любом прохождении через мой основной цикл максимум один из потенциометров мог измениться (из-за способа, которым они считываются).
Это встроенный режим с очень ограниченным временемплатформу, поэтому важно (или, по крайней мере, важно), чтобы я не звонил savePotentiometerState
чаще, чем должен.Тем не менее, код, который я придумываю, кажется глупым, что может закончиться на thedailywtf:
if (!savePotentiometerState(pot1))
if (!savePotentiometerState(pot2))
...
if (!savePotentiometerState(potn));
Еще один способ сделать это - использовать оценку короткого замыкания:
const bool retval = savePotentiometerState(pot1) || savePotentiometerState(pot2) || ... || savePotentiometerState(potn);
Полагаю, я мог бы даже отбросить задание здесь.Но это не похоже на хороший стиль, так как я злоупотребляю коротким замыканием оператора ||
.
Различные potn
объекты являются переменными-членами содержащего класса, поэтому нет очевидногоспособ написать это в виде цикла.
Мне кажется, что я упускаю что-то очевидное здесь, поэтому мой вопрос: есть ли идиоматический / легкий для чтения способ сделать это, который не жертвует эффективностью?Если это имеет значение, я использую C ++ 17.