当我尝试编译以下代码时出现编译器错误:
for(binary_instructions_t &inst: BinaryInstructions){
}
BinaryInstructions
是这个枚举类:
typedef unsigned int binary_instructions_t;
enum class BinaryInstructions : binary_instructions_t
{
END_OF_LAST_INSTR = 0x0,
RESET,
SETSTEP,
START,
STOP,
ADD,
REMOVE,
};
是否应该允许我使用枚举类中的项目“执行”基于范围的 for 循环?或者我是否误解了基于范围的 for 循环是用于搜索数组的内容而不是枚举类之类的东西?
我也尝试过:创建实例并在实例中搜索:
BinaryInstructions bsInstance;
for(binary_instructions_t &inst : bsInstance){
}
但是没有雪茄......提前致谢,
最佳答案
基于范围的 for 循环需要一个集合,例如数组或 vector 。枚举类不是集合。
但是,它是 C++,所以有一个解决方法。请参阅:Allow for Range-Based For with enum classes?
关于c++ - 对基于范围的for循环的误解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965174/