gpt4 book ai didi

enums - 一种在 C++0x 枚举类中使用所有非限定名称的方法?

转载 作者:行者123 更新时间:2023-12-02 11:41:00 28 4
gpt4 key购买 nike

新的 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: ...

我发现我可以使用 E::VAL1 编写并获取一个值。但我不想对更大枚举的每个值都这样做。

最佳答案

在 C++11 中无法执行此操作。以防万一您不知道 - 您会得到 E::Val1即使是无范围枚举的表示法。对于这样的枚举,您有 Val1使用或不使用 E:: 均可访问。

但是您不能采用作用域枚举并有选择地使其所有枚举器在给定作用域中可见。还应该注意的是,您可以using E::Val1 。规范明确禁止这样做,您的编译器只是还没有拒绝它。

关于enums - 一种在 C++0x 枚举类中使用所有非限定名称的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7457058/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com