问题标签 [enum-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
868 浏览

c++ - 访问向量字段的键 - 枚举类或命名空间中的枚举?

假设我有一个向量的别名:

我希望它的字段可以通过一些键访问:

我怎样才能实现它?

我可以在命名空间内定义一个枚举:

enum class更安全:

enum class但是,由于禁用了对类型的隐式转换int,因此需要编写:

这有点尴尬。

在这种情况下哪种方法更好,为什么?

编辑混叠向量的一些解释:

在实际代码中,PlanetData 有大约 7 个字段,如果我决定扩展它可能会更多。我在解析 form 字符串时创建了它的一个实例data_string = "date: 2903248.12343, position=[124543254.1343214,123213.12341,63456.1234], velocity=[..."。这就是为什么我希望它成为一个向量:使用类似的东西planet_data.push_back(ParseNextDouble(data_string));

0 投票
1 回答
798 浏览

java - 为什么构造函数未定义?

即使我正在使用 Bukkit,这是一个 Java 问题;

我不知道,为什么Java说构造函数是未定义的,因为它是定义的

任何想法如何解决这个问题,因为我环顾四周,发现除了这种语法之外什么都没有,而且似乎所有关于此类主题的对话都至少有 5 年的历史并且非常模糊。

0 投票
1 回答
264 浏览

c++11 - “枚举结构”不会编译,除非已经包括了

我有包含该行的代码

当我编译这个时,我得到错误:

但是,如果我把线

在顶部,它毫无怨言地编译。

对此有解释吗?

(我使用的是 g++ 4.9.4,但这种行为也显示在 g++ 5.4.0 中。)

0 投票
3 回答
4487 浏览

c++ - C++ 枚举类 std::size_t 隐式转换

我通过创建一个枚举类定义了一个元组及其索引:

现在我想从这个元组中得到一个值:

我认为从intto的隐式转换是由语法std::size_t确保的:: std::size_t

但我收到了这个错误

这很好用,但是太啰嗦了:

0 投票
3 回答
479 浏览

c++ - 使用对另一个枚举值的操作来定义枚举元素值

这是我需要做的:在一个类中定义两个枚举,第二个具有使用第一个元素值定义的元素。

所以是这样的:

但是,由于默认情况下未为es定义,因此无法编译。|enum class

我试图在类之外(在类主体之后)为枚举定义|运算符,但是在定义枚举时该运算符是未知的。ElemMyClassGroup

所以我然后尝试了以下方法,即在类中定义一个constexpr函数:

但我收到以下错误:

错误:在常量表达式中调用了静态 constexpr unsigned int merge(std::initializer_list list)

我从这里那里了解到,只有在类完全声明后,该merge方法才被视为已声明和可用。

我能想到的最后一个解决方案是使用这样的宏:

但是我需要能够合并最多 20Elem秒,并且像这样编写 20 个宏似乎不是一个合适的解决方案。

去这里的方法是什么?

0 投票
2 回答
895 浏览

c++ - 在 C++ 中调用带括号的枚举/枚举类时会发生什么?

这可能是一个有点奇怪的问题,但我真的不知道如何更好地表达它。

我刚刚发现我可以执行以下操作:

所以现在我在类型的变量中有整数值 15 Colour

这里到底发生了什么?那是某种枚举“构造函数”吗?据我所知,整数值 15 没有放入枚举中,它仅存储在 variable 中c。首先,为什么这样的东西会有用——创建一个枚举中不存在的值?

0 投票
1 回答
71 浏览

java - 如何检查枚举类中的值?

我想检查从 json 对象返回的标签是否具有枚举类中的值之一。

这是我的枚举类

这是返回的标签...

“标签”:[“泰迪熊”,“室内”,“衣服”,“领带”,“人”,“熊”,“穿着”,“绿色”,“棕色”,“填充”,“坐着”,男人“,弓”,“脖子”,“脸”,“衬衫”,“蓝色”,“帽子”,“关闭”,“灰色”,“铺设”,“黑色”,“眼镜”,“头” ,"床","白色","抱着","猫","睡觉"]}

我的问题是它总是转到 else 语句。您认为代码有什么问题?

0 投票
1 回答
144 浏览

c++ - 为什么“cout << Color::green”不能编译?

我在一次测试中遇到了这个问题。

我知道我可以做类似的事情:

但是当我替换cout << "blue\n";为 时cout << Color::green,它甚至无法编译。为什么不编译?

0 投票
3 回答
1388 浏览

c++ - 如何将枚举类写入文件并在 C++ 中访问它?

我正在尝试将类对象的内容写入文件。该对象有一个枚举类成员,我无法使用 ofstream 将其写入文件。

我收到以下错误。

任何线索都会有所帮助。

0 投票
1 回答
194 浏览

c++ - 检查枚举类是否可用的简单宏

C++中有很多特性测试宏,它们提供了一种简单且可移植的方法来检测 C++ 标准和实验特性的存在。但是,我没有找到简单的宏来检查enum classes 是否受支持。是否有更简单直接的方法来检查enum class支持然后检查__cplusplus宏的值?