我尝试在for循环中使用枚举,代码如下:
enum foo
{
foo_0,
foo_1,
foo_2,
foo_3,
...
foo_n,
foo_count
};
for(foo f = foo_0; f < foo_count; ++f)
我遇到了一个编译错误。我知道这是无效的,因为++f可能不是有效的foo枚举 - 在这种情况下不是通用情况,所以我将for循环改成了这样:
for(foo f = foo_0; f < foo_count; f = foo(f+1))
这段代码可以成功编译。但是这引发了以下问题:如果我有以下语句会怎样?
foo f = foo(k); //k is not a valid foo value
这算不确定行为吗?
编辑:k是一个整数,在foo中没有对应的值。
编辑2:
enum foo
{
foo_0,
foo_1,
foo_2,
foo_3
};
foo f = foo(100); //what value will have f after this according to the standard
感谢您的帮助!