c++ - 对基于范围的for循环的误解?

标签 c++ for-loop enum-class

当我尝试编译以下代码时出现编译器错误:

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/

相关文章:

c++ - OpenGL 不渲染,可能是由于一些我找不到的简单错误

c++ - 我应该如何与使用 Xcode 的开发人员协作?

javascript - for 循环无意中中断 if 语句

c++ - Qt Queued Slots 中的枚举和枚举类

c# - Matlab Coder - 从 .m 文件生成 EXE

c++ - C++ 的 SQLite 替代方案

java - 如何使用 'for' 循环来检查输入中的某些数字?

ios - 添加 MapKit Overlay 以从 for 循环一次映射 x1

c++ - 涉及枚举类和宏扩展的代码片段的含义