process(true, false);
Эта функция, судя по названию, что-то обрабатывает (process). Но что означают параметры? Какой параметр здесь true, а какой false? По вызывающему коду об этом нельзя судить.
Нам придется заглянуть в объявление функции, которое дает подсказку:
void process(bool withValidation,
bool withNewEngine);
Очевидно, автор использует два параметра типа bool как флаги (toggles). Реализация функции может быть похожа на это:
void process(bool withValidation,
bool withNewEngine)
{
if (withValidation) // используется 1-й флаг
validate(); // % подтвердить
do_something_toggle_independent_1
if (withNewEngine) // используется 2-й флаг
do_something_new();
else
do_something_old();
do_something_toggle_independent_2();
}
Назначение флагов очевидно, поскольку каждый из них имеет осмысленное название. Проблема возникает в вызывающем коде.