国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 編程 > C++ > 正文

Effective Modern C++ 條款9補(bǔ)完 理解模板類型推斷

2019-11-11 07:51:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

http://blog.csdn.net/big_yellow_duck/article/details/52224068

看大黃鴨的《Effective Modern C++》翻譯時(shí),第9款最后有一小部分沒(méi)有翻,于是去看英文版補(bǔ)全,

看的時(shí)候順便翻譯了一下。然后今天校對(duì)過(guò)后把它發(fā)出來(lái)。

條款9  理解模板類型推斷  (最后小半部分)

如果你做過(guò)模板元編程(templete meta PRogramming, TMP),你肯定會(huì)遇到過(guò)要把模板類型轉(zhuǎn)換為其他類型的需求。例如,對(duì)于類型T,你可能想要去除T含有的const 修飾或者引用修飾,具體來(lái)說(shuō),比如你可能會(huì)想把const string& 變成std::string。或者你也有可能想把一個(gè)類型加上const修飾或者左值引用修飾,具體來(lái)說(shuō),比如把Widget變成const Widget或者Widget&。(如果你還沒(méi)有碰到過(guò)模板元編程,那可真是太糟糕了,因?yàn)槿绻阆氤蔀檎嬲咝У腃++程序員,你就需要對(duì)c++的這一塊至少有最基本的了解。你會(huì)在條款25和條款29中也看到TMP的例子,其中也包含了我在上面提及到的類型轉(zhuǎn)換。

c++11提供了實(shí)行這樣轉(zhuǎn)換的工具,他們叫做type traits,是一種變形的模板類,包含在頭文件<type_traits>中。這個(gè)頭文件中有一打這樣的type traits,但并不是所有的都是處理類型轉(zhuǎn)換相關(guān),其中的一些提供了望文而知意的接口。假設(shè)你要轉(zhuǎn)換的源類型為T,你需要的轉(zhuǎn)換結(jié)果就是std::transformation<T>::type。例如:

std::remove_const<T>::type // yields T from const T

std::remove_reference<T>::type // yields T from T& and T&&

std::add_lvalue_reference<T>::type // yields T& from T

上面的注釋只是簡(jiǎn)單說(shuō)明代碼做了什么。不要在意我的修辭手法。不過(guò)在把他們用到工程中之前,你一定去會(huì)仔細(xì)查閱他們的說(shuō)明文檔的,這我知道。

不過(guò)我在這里的原意也不是上一堂關(guān)于type traits的教學(xué)課。我請(qǐng)你注意到這些轉(zhuǎn)換接口的末尾都帶有“::type”的后綴。如果你用它們?cè)谀0鍍?nèi)部作為參數(shù)傳遞(實(shí)際上你總是這樣使用它們),你也不得不在每個(gè)前面加上一個(gè)“typename”。會(huì)出現(xiàn)這樣像是馬路兩邊的“路牙”的玩意,是因?yàn)閏++11的type traits的實(shí)現(xiàn),是基于模板化結(jié)構(gòu)的內(nèi)部嵌套typedef。沒(méi)錯(cuò),那就是我曾經(jīng)極力向你推薦的類型變化技巧,現(xiàn)在他們輸給了模板別名(alias template)!!(譯注:即using關(guān)鍵字)

c++11這樣做是有歷史原因的,不過(guò)我們先跳過(guò)他們(說(shuō)明很無(wú)趣,我保證)。長(zhǎng)話短說(shuō),因?yàn)閏++標(biāo)準(zhǔn)化委員會(huì)終于認(rèn)識(shí)到模板別名是更好的實(shí)現(xiàn)方案,他們于是先在c++14里為這些c++11風(fēng)格的類型轉(zhuǎn)換做了一層包裝。包裝具有如下形式:對(duì)每個(gè)c++11形如std::transformation<T>::type的轉(zhuǎn)換接口,就有一個(gè)與之對(duì)應(yīng)的C++14 模板別名std::transformation_t。看例子就知道我說(shuō)的意思了。

std::remove_const<T>::type // C++11: const T → T

std::remove_const_t<T> // C++14 equivalent

std::remove_reference<T>::type // C++11: T&/T&& → T

std::remove_reference_t<T> // C++14 equivalent

std::add_lvalue_reference<T>::type // C++11: T →T&

std::add_lvalue_reference_t<T> // C++14 equivalent

c++11形式的接口在c++14里還能用,不過(guò)我想不出你還有什么理由用他們。即使你沒(méi)有c++14,你自己寫一個(gè)模板別名也是小菜一碟。這只需要用到c++11的語(yǔ)言特性,連三歲小孩也能做到的,相信我。即使你能拿到一份c++14標(biāo)準(zhǔn)案的拷貝,也還是自己寫比較簡(jiǎn)單,因?yàn)樗心阋龅木褪强截愓迟N。我會(huì)給你起個(gè)頭(也是通過(guò)拷貝粘貼):

template <class T>using remove_const_t = typename remove_const<T>::type;

template <class T>using remove_reference_t = typename remove_reference<T>::type

template <class T>using add_lvalue_reference_t = typename add_lvalue_reference<T>::type;

你瞧,簡(jiǎn)單得不能再簡(jiǎn)單了吧。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
日本18视频网站| 狠狠操五月天| 最新亚洲精品国自产在线观看| 中文资源在线网| 性网站在线看| gogo在线高清视频| 免费在线看v| 国产一区二区影视| 国产私人影院| 2021av天天| 超碰在线免费播放| 1区不卡电影| 国产一级影片| 国产经典av| 精品国内一区二区三区免费视频| 在线免费黄色毛片| 久久精品蜜桃| 2018狠狠干| 激情四房婷婷| 国产高清免费视频| www.麻豆av.com| 国产小视频在线观看| 在线观看国产福利视频| 九九热在线观看| 影音av资源站| 五月婷婷在线观看| 99热免费观看| 国产高清在线看| 亚洲男人的天堂成人| 成人精品一区二区三区免费| 国产精彩视频在线观看免费蜜芽| 午夜在线不卡| 天天av综合网| а√最新版在线天堂| 国产白浆在线| 国产午夜精品一区理论片| 日本国产在线| av在线电影观看| 伊人影院在线视频| 国产激情小视频在线| 黄色av网址在线免费观看| 精品美女视频在线观看免费软件| 91福利在线免费| 99热国产在线| 精品成人一区二区三区免费视频| 国产网站观看9久| 在线91av| 国产丝袜护土调教在线视频| 1区2区视频| 国产小视频在线观看| 天堂在线亚洲| 国产一级黄色电影| 1区2区3区在线| 国产夫妻视频| 亚洲天堂二区| 欧美国产中文| 天堂在线一二区| 国产精品免费视频一区一| 国产免费黄网站| 国产免费视频| 国产高清一级片| 亚洲精品影院在线| 黄色免费av| 国产亚洲精品自在线观看| 国产成人亚洲精品播放器下载| 国产精品国产三级国产试看| 中文在线官网天堂| 免费男女羞羞的视频网站中文字幕| 狠狠操视频网站| 国产一级黄色| 在线视频观看你懂的| 欧美日韩在线视频免费观看| 国产蜜臀在线| 国产福利资源| 久久久久久91精品色婷婷| 国产蜜臀在线| 亚洲一道本在线| 黄色国产网站在线观看| 国产成人福利| 另类综合图区| 在线欧美一级视频| 中文字幕在线免费看| 精品美女调教视频| 国产精品一区二区三区高清在线 | av手机免费观看| 好看的中文字幕在线播放| 国产精品jvid在线观看| 欧美人成在线观看网站高清| 69免费视频| 久草电影在线| 亚洲一本大道| 国产精品冒白浆免费视频| 青青免费在线视频| 精品国语对白精品自拍视 | 国产丝袜在线| 黄色国产网站在线播放| 国产一级在线观看www色| www.久草.com| av在线不卡网站| 99综合精品久久| 2021av天天| 精品街拍一区二区| 国产小视频在线观看| 午夜视频免费在线观看| 国产在线免费观看| 免费精品国产自产拍在| 四虎成人免费| 美女网站在线观看| 欧美精品另类| www.91av| 成人欧美日韩| 日日夜夜中文字幕| 日本在线天堂| 狠狠操天天操夜夜操| 国产亚洲精品久久久久久青梅 | 91中文字幕| 国产黄色一级电影| 国产精品xxx电影| av黄色在线观看| 亚洲妇熟xxxx妇色黄| 亚洲欧美小说国产图片| 蜜桃视频中文字幕| а√最新版地址在线天堂| 九九热视频免费观看| 国产麻豆一级片| 国产精品久久久久久久久鸭| 91这里只有精品| 日本亚洲欧美| 国产精品爱久久久久久久小说| 91欧美在线视频| 免费av不卡在线观看| 国产精品yjizz视频网一二区 | 亚洲精品自拍区在线观看| 欧美日韩一区二区三区视视频| 九九热视频免费观看| 18被视频免费观看视频| 2020中文字幕在线播放| 天天插天天干| 国产系列在线观看| av在线不卡网站| 国产一区久久精品| 女人色在线免费视频| 国产a级网站| 国产精品自产拍在线网站| 91青青在线视频| 国产一级黄色大片| 国产中文第一页| wwwww在线观看免费视频| 国产欧美黑人| 国产一级免费在线观看| 女人色在线免费视频| 国产色在线观看| 国产中文在线观看| 黄色片av在线| 黄色一级片视频| 日本韩国精品一区二区| 99热99re6国产在线播放| 中文字幕一区免费| 男女午夜视频在线观看| 精品av中文字幕在线毛片| 国产一区二区影视| 国产青青草在线| 国产特黄在线| 在线91av| 国产婷婷视频在线| 国产激情视频一区二区| 日韩中文字幕久久久经典网| 亚洲天堂电影在线观看| 亚洲jjzzjjzz在线观看| 99re热在线观看| 午夜在线网站| 免费在线黄色网址| 国产美女在线一区二区三区| 中文字幕在线视频不卡| 国产小视频在线观看| 国产夫妻视频| 丝袜理论片在线观看| 日本高清中文字幕在线| 欧美性xxxx交| 国产在线视精品麻豆| 国产香蕉在线| 国产精品视频一区二区久久| 依依成人在线| 黄色av免费在线| 91www在线观看| 超碰国产在线| 国产黄色免费电影| 日本久久网站| 国产精品国精产品一二| 在线午夜影院| 蜜桃视频中文字幕| 国产日韩欧美一区二区三区视频| ·天天天天操| 日韩av成人| 四虎国产精品永久在线 | 国产精品久久久久永久免费看| 在线免费看黄| 国产日本视频| 九九热在线观看视频| 永久免费网站在线|