【发布时间】:2011-11-19 09:36:44
【问题描述】:
新的 C++(C++0x 或 C++11)有一种新的枚举类型,一个“枚举类”,其中名称的范围为枚举(除其他外)。
enum class E {
VAL1, VAL2
};
void fun() {
E e = E::VAL1; // Qualified name
}
不过,我想知道是否可以在特定范围内选择性地使用非限定名称。比如:
void fun() {
using E::*;
E e = VAL1;
switch (e) {
case VAL2: ...
我知道我可以写using E::VAL1 并得到一个值。但我不想对更大枚举的每个值都这样做。
【问题讨论】:
-
如果我可能会问,您使用的是什么编译器?能够“使用 E::Val1;”的错误报告是有序的。
-
几年前我错过了这条评论。它曾经是,现在仍然是,铿锵声。现在是 4.0 版。
-
clang4 还没有得到这个吗?奇怪。我正在/正在工作 gcc - 现在是 4.8。这在那里有效。
标签: enums c++11 using-declaration