0

为什么这不起作用:

        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())
                      );

我在这里制造麻烦吗?

编辑:操作,是的,我打错了,它应该是 enRed 而不是索引的 Color

4

2 回答 2

3

static只能应用于一个实例,typedef用于声明一个type所以这个语句不能工作:

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

尽管您可以创建一个typedef并且稍后声明static它的实例。您不能将Color其用作索引,因为它是 a type,尽管以下方法可行:

Basket[enRed]
于 2013-05-12T02:29:31.800 回答
1

在你的代码Color

赋予枚举的类型名称

它不能用于索引。

于 2013-05-12T02:36:09.217 回答