C++ 在数组中存储来自另一个命名空间的枚举值

C++ 在数组中存储来自另一个命名空间的枚举值,c++,C++,我想将枚举变量中的值存储在数组中的另一个命名空间中 因此,假设enum声明如下 namespace something { enum IWANT { FOO = 0, BAR, BLARGH, MEH, SIZE }; } // namespace SOMETHING 我可以访问其他人使用的枚举 something::FOO 是否可以将我想要的某些变量存储在数组中?比如说 <varT

我想将枚举变量中的值存储在数组中的另一个命名空间中

因此,假设enum声明如下

namespace something
{
    enum IWANT
    {
        FOO = 0,
        BAR,
        BLARGH,
        MEH,
        SIZE
    };
} // namespace SOMETHING
我可以访问其他人使用的枚举

something::FOO
是否可以将我想要的某些变量存储在数组中?比如说

<varType> onlyWhatIwant[3] = {something::FOO, something::BAR, something::SIZE}
onlyWhatIwant[3]={something::FOO,something::BAR,something::SIZE}
这样,当变量按如下方式使用时,
仅当whatiwant[1]指向something::BAR时


我不知道这是否可能,但我想在寻找另一条路线之前我会问一下;它们没有关联的地址,因此您可以使用传统意义上的指向它们的指针。你想做的在某种程度上是可能的(检查我下面的完整示例);但是,数组元素不会指向其他对象。它们的值仅等于指定的常量(在我的示例中为foo::first和foo::second)

对于这样的枚举

namespace something{
  enum myEnum{
    Val0 = 0,
    Val1 = 1,
    Val2 = 2,
    Val3 = 3,
  //...
  //Valn = n
  };
}
您还可以使用类似这样的内容作为值的别名

enum onlywhatiwant{
  Val1 = something::Val1,
  Val3 = something::Val3
  // etc
};

当然是,试试看。我真的不明白这个问题。谢谢!我发现了问题所在…我在错误的位置初始化了变量!谢谢你的例子!
enum onlywhatiwant{
  Val1 = something::Val1,
  Val3 = something::Val3
  // etc
};