我正在使用raytracer,正在尝试实现采样。现在,我有一个代表采样类型的枚举,为简单起见,我们将其称为“一个”,“两个”,“三个”。现在,“一个”和“两个”彼此独立,但是如果某些对象需要采样“三个”类型,则需要运行“一个”和“两个”的代码。现在我正在这样做:
bool flag = false;
switch(type) {
case Three: flag = true;
case One:
// ...
if(!flag) break;
case Two:
// ...
break;
}
如果没有 bool(boolean) 值,是否有一种“鬼nea”的方法?我可以考虑将“一个”和“第二”的代码放入单独的函数中,并在“三个”的情况下都调用,但是我不希望在那里调用函数,因为这被称为“很多”。内联函数是另一种选择,但这会导致代码重复。
最佳答案
我太专注于尝试使其作为开关工作,但正如@NathanOliver指出的那样,它就像
if(type==One || type == Three) {
// case One
}
if(type==Two || type == Three) {
// case Two
}
关于c++ - 切换语句失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59667920/