美文网首页
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);

    }

    相关文章

      网友评论

          本文标题:C++11 enum class

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