最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解c++11以正確的姿勢輸出enum class的值

 更新時(shí)間:2020年10月30日 11:06:06   作者:ztenv  
這篇文章主要介紹了詳解c++11以正確的姿勢輸出enum class的值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

c++11新增了enum class,相比傳統(tǒng)的enum好處多了很多,但也有些讓人不太爽的地方,如:輸出到std流時(shí)會(huì)報(bào)錯(cuò),進(jìn)行了強(qiáng)轉(zhuǎn)則沒有信息輸出,那么,到底該如何將enum class的值出到std流呢?

提供這個(gè)enum class的原因是因?yàn)榕f的enum有不少缺點(diǎn)。簡單描述一下:

1. 容易被隱式轉(zhuǎn)換成int

2. underlying type 指的是編譯器實(shí)現(xiàn)者幕后的實(shí)現(xiàn)細(xì)節(jié)導(dǎo)致了跨平臺(tái),跨編譯器的不一致性。尺寸的不可估計(jì)等等。

3. 沒有嚴(yán)格的scope界限

下面,介紹一種通過重載<<操作符的方法來實(shí)現(xiàn),如下:

#include <iostream>
#include <sstream>

enum class error_code
{
  ok=0,
  invalid_args=1,
  runtime_error=2,
  //..
}; 

//重載operator<<的操作符,使error_code支持<<輸出
std::ostream & operator<<(std::ostream &os,const error_code &ec)
 {
   os<<static_cast<std::underlying_type<error_code>::type>(ec);
   return os;
 }


using namespace std;

int main(int argc,char *argv[])
{
  cout<<error_code::ok<<endl;
  cout<<error_code::invalid_arg<<endl;
  cout<<error_code::runtime_error<<endl;
 
  stringstream ss;
  ss<<error_code::runtime_error;

  return 0;
}

到此這篇關(guān)于詳解c++11以正確的姿勢輸出enum class的值的文章就介紹到這了,更多相關(guān)c++11 輸出enum class內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++標(biāo)準(zhǔn)模版庫(STL)之vector容器詳解

    C++標(biāo)準(zhǔn)模版庫(STL)之vector容器詳解

    vector的功能和水桶一樣,就是用來裝東西的,并且vector還提供了迭代器來很方便的訪問這些數(shù)據(jù),下面就讓我們一起看下如何使用C++的vector吧
    2023-03-03
  • C語言數(shù)組超詳細(xì)講解下篇掃雷

    C語言數(shù)組超詳細(xì)講解下篇掃雷

    數(shù)組是一組有序的數(shù)據(jù)的集合,本篇將帶你結(jié)合數(shù)組來實(shí)現(xiàn)掃雷小游戲,上手實(shí)練更快的能夠掌握數(shù)組使用,感興趣的朋友來看看吧
    2022-04-04
  • C++實(shí)現(xiàn)LeetCode(37.求解數(shù)獨(dú))

    C++實(shí)現(xiàn)LeetCode(37.求解數(shù)獨(dú))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(37.求解數(shù)獨(dú)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++使用數(shù)組來實(shí)現(xiàn)哈夫曼樹

    C++使用數(shù)組來實(shí)現(xiàn)哈夫曼樹

    給定N個(gè)權(quán)值作為N個(gè)葉子結(jié)點(diǎn),構(gòu)造一棵二叉樹,若該樹的帶權(quán)路徑長度達(dá)到最小,稱這樣的二叉樹為最優(yōu)二叉樹,也稱為哈夫曼樹(Huffman?Tree)。哈夫曼樹是帶權(quán)路徑長度最短的樹,權(quán)值較大的結(jié)點(diǎn)離根較近
    2022-05-05
  • 詳解C++14中返回類型推導(dǎo)的使用

    詳解C++14中返回類型推導(dǎo)的使用

    這篇文章主要為大家詳細(xì)介紹了C++14中返回類型推導(dǎo)的使用,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • C++中的局部變量、全局變量、局部靜態(tài)變量、全局靜態(tài)變量的區(qū)別

    C++中的局部變量、全局變量、局部靜態(tài)變量、全局靜態(tài)變量的區(qū)別

    本文主要介紹了C++中的局部變量、全局變量、局部靜態(tài)變量、全局靜態(tài)變量的區(qū)別。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • 深入淺析C++多態(tài)性與虛函數(shù)

    深入淺析C++多態(tài)性與虛函數(shù)

    多態(tài)是指同樣的消息被不同的對(duì)象接收時(shí)導(dǎo)致不同的行為。本文通過實(shí)例代碼給大家介紹了C++多態(tài)性與虛函數(shù)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2020-02-02
  • C++中memcpy函數(shù)的使用以及模擬實(shí)現(xiàn)

    C++中memcpy函數(shù)的使用以及模擬實(shí)現(xiàn)

    memcpy是c和c++使用的內(nèi)存拷貝函數(shù),本文主要介紹了C++中memcpy函數(shù)的使用以及模擬實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C++11新特性之四種類型轉(zhuǎn)換cast說明

    C++11新特性之四種類型轉(zhuǎn)換cast說明

    類型轉(zhuǎn)換是項(xiàng)目中常使用的一種語法規(guī)則,幾乎每個(gè)編程語言都不可避免的涉及到這方面,下面這篇文章主要給大家介紹了關(guān)于C++11新特性之四種類型轉(zhuǎn)換cast說明的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • C++?如何使用棧求解中綴、后綴表達(dá)式的值

    C++?如何使用棧求解中綴、后綴表達(dá)式的值

    這篇文章主要介紹了C++?使用棧求解中綴、后綴表達(dá)式的值,本文講解了中綴、后綴表達(dá)式的求值過程以及如何將一個(gè)中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式,需要的朋友可以參考下
    2022-10-10

最新評(píng)論

五台县| 聂拉木县| 马公市| 南宫市| 搜索| 丹阳市| 湟中县| 德安县| 扎赉特旗| 巴塘县| 永嘉县| 博白县| 工布江达县| 田林县| 宁武县| 巍山| 蓬溪县| 临夏县| 溧阳市| 镶黄旗| 阿坝| 定襄县| 民勤县| 德清县| 江川县| 汝州市| 韶山市| 巴林右旗| 桃源县| 屏东市| 岑巩县| 密山市| 花莲县| 鄂尔多斯市| 理塘县| 镇平县| 汤原县| 广安市| 金阳县| 新和县| 阳城县|