Typedef static std :: list array

时间:2013-05-12 02:26:09

标签: c++

为什么这不起作用:

        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而不是索引的颜色

2 个答案:

答案 0 :(得分:3)

static只能应用于实例,typedef用于声明type,因此此语句不起作用:

typedef static std::list<Apple> Basket[3];

虽然您可以创建typedef而不是稍后声明static实例。您不能将Color用作索引,因为它是type,但以下方法可行:

Basket[enRed]

答案 1 :(得分:1)

在您的代码Color

  

枚举的类型名称

它不能用于索引。