C++11 enum class

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

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);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 接着上节 condition_varible ,本节主要介绍future的内容,练习代码地址。本文参考http:/...
    jorion阅读 14,864评论 1 5
  • 【转载】原文地址:std::string详解作者:kieven2008 之所以抛弃char*的字符串而选用C++标...
    VAYY阅读 666评论 0 2
  • gif图片加载普通方法(可以控制gif的进度控制内部都有接口)gitYYImage实例//加载imageYYIma...
    YKDog阅读 3,763评论 0 1
  • (一)花自己的钱为自己做事,既将究效果也将就节约。 (二)花自己的钱为政府办事,不将究效果而将究节约。 (三)花政...
    让生活处处弥漫着书香阅读 1,963评论 0 0
  • 凌晨三点 我上床 身边少了你 辗转反侧 心慌意乱 手都不知该放哪儿好 空气中都有你的味道 我想你 我大方的承认 我...
    野风惊扰我阅读 154评论 0 1