美文网首页
C++11 enum class

C++11 enum class

作者: 期门 | 来源:发表于2018-08-25 09:26 被阅读118次

传统的枚举类型不是类型安全的,会被视作整数。

C++11 枚举类型是类型安全的:不能够被隐式的转换为整数,同时也不能够将其与整数数字进行比较,更不可能对不同的枚举类型的枚举值进行比较。相当于是创建了一个新的类型。

使用冒号及类型关键字来指定枚举中枚举值的类型。

enum class new_enum:unsigned int{ 

     value1,

    value2,

    value3 = 100,

    value4 = 100};

输出时,需要进行一次强制类型转换,或者重载operator<<操作符:

#include<iostream>

template std::ostream& operator<<(typename std::enable_if::value, std::ostream>::type& stream, const T& e)

{

    return stream << static_cast::type>(e);

}

相关文章

  • 奇妙的enum class,enum struct组合

    奇妙的enum class,enum struct组合 在c++11标准中,除了传统的enum关键字之外, 还新增...

  • C++11 enum class

    传统的枚举类型不是类型安全的,会被视作整数。 C++11 枚举类型是类型安全的:不能够被隐式的转换为整数,同时也不...

  • 使用enum class代替enum

    C++11里面提出了一个新的概念enum class。它的特点是。 新的enum的作用域不在是全局的了。 原来en...

  • 【c++11关键字】enum class

  • Python枚举类型

    from enumimport Enum class Color(Enum): Yellow ="#111" ...

  • enum class

    强类型枚举 枚举:分门别类与数值的名字 允许匿名枚举的出现容易出现以下问题: C语言中枚举是 常量数值的 别名,因...

  • 枚举类型

    java.lang.Enum static Enum valueOf(Class enumClass, St...

  • kotlin知识点

    1. 类 关键字class/data class/sealed class/inner class/enum cl...

  • kotlin基础知识二: enum和when

    一、enum class 1. 声明一个带有属性的enum class 在kotlin语法中唯一需要使用分号的地方...

  • Java API学习19 - java.lang.Enum

    Enum是一个特殊的类. 我们不能以class Xxx extends Enum的方式手动继承, 必须写成enum...

网友评论

      本文标题:C++11 enum class

      本文链接:https://www.haomeiwen.com/subject/qrmwiftx.html