问题标签 [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.
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));
java - 为什么构造函数未定义?
即使我正在使用 Bukkit,这是一个 Java 问题;
我不知道,为什么Java说构造函数是未定义的,因为它是定义的
任何想法如何解决这个问题,因为我环顾四周,发现除了这种语法之外什么都没有,而且似乎所有关于此类主题的对话都至少有 5 年的历史并且非常模糊。
c++11 - “枚举结构”不会编译,除非已经包括了
我有包含该行的代码
当我编译这个时,我得到错误:
但是,如果我把线
在顶部,它毫无怨言地编译。
对此有解释吗?
(我使用的是 g++ 4.9.4,但这种行为也显示在 g++ 5.4.0 中。)
c++ - C++ 枚举类 std::size_t 隐式转换
我通过创建一个枚举类定义了一个元组及其索引:
现在我想从这个元组中得到一个值:
我认为从int
to的隐式转换是由语法std::size_t
确保的:: std::size_t
但我收到了这个错误
这很好用,但是太啰嗦了:
c++ - 使用对另一个枚举值的操作来定义枚举元素值
这是我需要做的:在一个类中定义两个枚举,第二个具有使用第一个元素值定义的元素。
所以是这样的:
但是,由于默认情况下未为es定义,因此无法编译。|
enum class
我试图在类之外(在类主体之后)为枚举定义|
运算符,但是在定义枚举时该运算符是未知的。Elem
MyClass
Group
所以我然后尝试了以下方法,即在类中定义一个constexpr
函数:
但我收到以下错误:
错误:在常量表达式中调用了静态 constexpr unsigned int merge(std::initializer_list list)
我从这里和那里了解到,只有在类完全声明后,该merge
方法才被视为已声明和可用。
我能想到的最后一个解决方案是使用这样的宏:
但是我需要能够合并最多 20Elem
秒,并且像这样编写 20 个宏似乎不是一个合适的解决方案。
去这里的方法是什么?
c++ - 在 C++ 中调用带括号的枚举/枚举类时会发生什么?
这可能是一个有点奇怪的问题,但我真的不知道如何更好地表达它。
我刚刚发现我可以执行以下操作:
所以现在我在类型的变量中有整数值 15 Colour
。
这里到底发生了什么?那是某种枚举“构造函数”吗?据我所知,整数值 15 没有放入枚举中,它仅存储在 variable 中c
。首先,为什么这样的东西会有用——创建一个枚举中不存在的值?
java - 如何检查枚举类中的值?
我想检查从 json 对象返回的标签是否具有枚举类中的值之一。
这是我的枚举类
这是返回的标签...
“标签”:[“泰迪熊”,“室内”,“衣服”,“领带”,“人”,“熊”,“穿着”,“绿色”,“棕色”,“填充”,“坐着”,男人“,弓”,“脖子”,“脸”,“衬衫”,“蓝色”,“帽子”,“关闭”,“灰色”,“铺设”,“黑色”,“眼镜”,“头” ,"床","白色","抱着","猫","睡觉"]}
我的问题是它总是转到 else 语句。您认为代码有什么问题?
c++ - 为什么“cout << Color::green”不能编译?
我在一次测试中遇到了这个问题。
我知道我可以做类似的事情:
但是当我替换cout << "blue\n";
为 时cout << Color::green
,它甚至无法编译。为什么不编译?
c++ - 如何将枚举类写入文件并在 C++ 中访问它?
我正在尝试将类对象的内容写入文件。该对象有一个枚举类成员,我无法使用 ofstream 将其写入文件。
我收到以下错误。
任何线索都会有所帮助。
c++ - 检查枚举类是否可用的简单宏
C++中有很多特性测试宏,它们提供了一种简单且可移植的方法来检测 C++ 标准和实验特性的存在。但是,我没有找到简单的宏来检查enum class
es 是否受支持。是否有更简单直接的方法来检查enum class
支持然后检查__cplusplus
宏的值?