Я работаю над raytracer и пытаюсь реализовать выборку. Теперь у меня есть enum, представляющий тип выборки, для простоты давайте назовем их «Один», «Два», «Три». Теперь «Один» и «Два» не зависят друг от друга, но если что-то требует выборки типа «Три», тогда должен выполняться код для «Один» и «Два». Прямо сейчас я делаю это:
bool flag = false;
switch(type) {
case Three: flag = true;
case One:
// ...
if(!flag) break;
case Two:
// ...
break;
}
Есть ли «хитрый» способ сделать это без логического выражения? Я мог бы подумать о том, чтобы поместить код для «One» и «Two» в отдельные функции и вызвать оба в случае «Three», но я не хочу, чтобы вызовы функций были там, так как это вызывается> много <. Встраивание функций было бы другим вариантом, но это привело бы к дублированию кода. </p>