在模板編程中,有幾個(gè)常用的技術(shù):模板(偏)特化,特性萃取,標(biāo)簽分派,匹配失敗不是錯(cuò)誤。其中模板(偏)特化是基礎(chǔ),匹配失敗不是錯(cuò)誤(SFINAE)應(yīng)用最為廣泛。

 

現(xiàn)代C++對(duì)模板編程做了更多的加強(qiáng),boost.hana又結(jié)合constexpr和lambda把類型與值的計(jì)算統(tǒng)一了起來。放眼C++世界,尤其是C++庫,幾乎都是使用模板的泛型編程。

 

話說在C++的世界中(并且?guī)缀跛姓Z言中)函數(shù)的作用是最為明顯的,試想:沒有類也可以完成編程任務(wù),但沒有函數(shù)卻不好說。另一方向只使用變量和語句也能完成少量的工作,但不進(jìn)行函數(shù)的封裝終難成大事。這幾年函數(shù)式編程赿來赿流行,與函數(shù)的重要性不無關(guān)系。所以無論是用類也罷,用函數(shù)也罷,或者使用C++新增的變量模板,我們的思路是始終圍繞著把它們向函數(shù)上靠就好。從MPL的元函數(shù)開始就試圖使類盡可能像函數(shù),我們?cè)谀0寰幊讨幸惨鼓0孱?、模板變量、乃至模板函?shù)都向“函數(shù)”靠攏。這里函數(shù)加上引號(hào)我想表達(dá)的是包括但不限于constexpr函數(shù)。

 

一、先從類型計(jì)算將用類實(shí)現(xiàn)來轉(zhuǎn)為用函數(shù)實(shí)現(xiàn)起。將類型計(jì)算與值計(jì)算統(tǒng)一起來,以例子說話:

 

電
        
        	<div   id=

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式