enum-class相关内容
如何从 boost::property_tree 获取枚举? 这是我的“非工作"示例. config.xml 排放::EMIT142 main.cpp #include #include #includ
..
我正在使用 std::tuple 并定义了一个类枚举以某种方式“命名"元组的每个字段,而忘记了它们的实际索引. 所以不要这样做: std::tupletup;/* ... */std::get(tup) = bleh;//是 0 还是 1? 我是这样做的: 枚举类东西{MY_INDEX_NAME = 0,OTHER_INDEX_NAME};std::tupletup;/* ... */
..
如何在 C++11 中输出 enum class 的值?在 C++03 中是这样的: #include 使用命名空间标准;枚举 A {一 = 1,b = 69,c = 666};int主(){A a = A::c;cout
..
我在一个项目中遇到这种情况,我们有一些套接字通信,主要交换字符以进行流控制.我们将这些字符转换为 enum类:char .我想知道,如果另一端发送的字符不在我们的枚举类中,会发生什么情况. 我有这个mwe: 枚举类Foo:char {未知,ENUM1 ='A',ENUM2 ='B',ENUM3 ='C'};char bar1(){返回"B";}char bar2(){返回'D';}int
..
在此答案中,提到在即将到来的C ++ 20标准中可以使用 enum class 上>使用语句,然后将enum字段导入本地名称空间. 我想知道这是否还意味着我也可以在这样的类定义中使用它: Foo类{枚举类Color{红色的,蓝色的};使用枚举颜色;};int main(){Foo :: Color c = Foo :: red;} 还是我仍然需要提供完整的名称空间?: Foo :
..
由于其自身的范围,我想将旧式的 enum 更改为 enum class:int . 但是编译器抱怨在整数算术中使用这些值.但是为什么-由于该枚举被显式地键入为int? 示例: 枚举类MsgType:int {输出= 1,输入= 2,调试= 3};枚举类MsgSender:int {A = 1B = 2C = 3};//稍后在代码中int id =(MsgType :: Input
..
我试图将枚举类包装在c ++头文件中以用于cython项目. 例如,如何 枚举类颜色{红色,绿色= 20,蓝色}; 用Cython包裹起来. 解决方案 CPP类 枚举类颜色{红色,绿色= 20,蓝色}; 类型的定义 来自"colors.h"的 cdef extern:cdef cppclass颜色:经过 颜色类型的定义 来自"colors.h"命名空间"Col
..
在我的项目中,我有很多枚举,这些枚举需要具有与枚举成员关联的其他属性以及与枚举类型关联的辅助静态方法。 据我所知,标准枚举类MyItem {...}不可能实现,因此对于我项目中的每个枚举类,我都有一个辅助类MyItemEnum,该类封装了这些辅助静态方法并实例化了自身的辅助实例,这样我就可以访问它们的方法以获得其他属性。 下面是一个示例(尽可能简化,但我相信所有要讨论的功能都保留在那里
..
#include #include #include template使用Underlying = std :: underlying_type_t
..
这可能是一个有点奇怪的问题,但是我真的不知道该怎么表达。 我刚刚发现我可以做到以下几点: #include 枚举类别Color //也可以与普通的旧枚举 { Red = 1, Green, Blue, Yellow, 黑色, 白色 }; int main() { 颜色c =颜色(15); //这是我不太了解的行 std :: c
..
P0138R2提案始于 1 有一种非常有用的技术可以引入几乎是精确副本的新整数类型,现代C ++ 11程序中的不同类型: 枚举类具有明确指定的基础类型。示例: 枚举类索引:int {}; //注意:没有枚举器。 一个人可以将 Index 用作新的整数类型,它没有隐式转换成任何东西(好!)。 要转换 Index 为其基础类型很有用。 int运
..
这可以做到吗? 枚举A { 枚举B { SOMETHING1, SOMETHING2 }; 枚举C { SOMETHING3, SOMETHING4 }; }; 如果没有其他解决方案? 此问题的目的:希望/需要执行以下操作: 枚举类ElementaryParticleTypes { 枚举类别MATTER { 枚
..
是否可以指定枚举类的默认构造函数? 我正在使用 enum class 来指定库中特定数据类型所允许的一组值:在这种情况下,它是Raspberry Pi的GPIO引脚ID号。看起来像这样: 枚举类PinID:int {N4 = 4,N17 = 17,/ * ... etc ... * /} 我这样做的重点不是仅仅使用例如 int 是为了确保代码是安全的:我可以 static_ass
..
您可以使用enum类实现标准符合(如n3242草案的17.5.2.1.3中所述)类型的安全位掩码吗?按照我的阅读方式,如果类型T支持|,&,^,〜,| =,& =和^ =运算符,则它是位掩码,并且进一步可以执行if(l& r),其中l和r属于T类型。列表中缺少运算符!=和==,并且为了允许排序可能还想重载
..
我试图将枚举类包装在c ++头文件中以用于cython项目。我已经在Google周围搜索了一下,但找不到实现该方法的方法-是否受支持? 解决方案 CPP类 枚举类颜色{红色,绿色= 20,蓝色}; 类型的定义 cdef extern来自“ colors.h”: cdef cppclass颜色: 通过 颜色类型的定义 cdef e
..
通常,您可以使用以下语法为一个类定义类型转换: class Test { public : 显式运算符bool(){return false; } }; 对于枚举类,有没有办法做到这一点? / code>? 解决方案 不,不是。 实际上,枚举类根本不是任何类。仅使用 class 关键字是因为突然将无范围的枚举更改为范围限定的枚举意味着重新制作 all
..
在相关讨论之后“枚举类"的递增和递减 ,我想问一下enum class类型的算术运算符的可能实现. 原始问题的示例: enum class Colors { Black, Blue, White, END_OF_LIST }; // Special behavior for ++Colors Colors& operator++( Colors &c ) { c = static
..
我有以下枚举规范: pre $ enum class FaceDirection:int8 { Down, up }; g ++ 4.8.1给出以下错误: 警告:范围枚举的详细说明符不能使用'class'关键字 解决方案 检查您正在派生的类型 enum class 存在。在这种情况下,没有为 int8 指定typedef。
..
在类中写入枚举的正确方法是什么?我正在用c ++编写conway的生活代码游戏。所以我有一个模式类,其中包含有关不同类型模式的信息: 类模式 { public: Patterns(); 〜Patterns(void); private: 枚举类PatternType { bloat, 块, 闪烁, toad } ; PatternType pattern_;
..
假设我有 枚举类标志:std :: uint16_t { 无= 0, A = 0x0001, B = 0x0002, C = 0x0004 } 内联标志运算符|(标志lhs,标志rhs) { return static_cast(static_cast(lhs)| static_cast
..