为什么这不起作用:
enum Color {
enRed,
enGreen,
enYellow
};
typedef static std::list<Apple> Basket[3];
std::for_each(Basket[enRed].begin(),
Basket[enRed].end(),
std::mem_fn(&Apple::Name())
);
我在这里惹麻烦了吗?
编辑:Ops,是的我输错了,它应该是enRed而不是索引的颜色
答案 0 :(得分:3)
static
只能应用于实例,typedef
用于声明type
,因此此语句不起作用:
typedef static std::list<Apple> Basket[3];
虽然您可以创建typedef
而不是稍后声明static
实例。您不能将Color
用作索引,因为它是type
,但以下方法可行:
Basket[enRed]
答案 1 :(得分:1)
在您的代码Color
中
枚举的类型名称
它不能用于索引。