C++模板特化編程

在C++中,模板特化是除了類以外的一種封裝變化的方法。模板特化能夠經過編譯器來對不一樣的模板參數生成不一樣的代碼。編程

模板特化一般以模板結構體做爲載體。經常使用技法包括:類型定義、靜態成員常量定義和靜態成員函數定義。函數

從不一樣的角度來看待模板特化,模板特化能夠扮演如下角色:遞歸

1、函數接口

模板結構體能夠被看作一種函數,其參數必須是明確的類型、整數或者變長參數。變長參數展開甚至能夠遞歸。編譯器

2、分支編譯

模板結構體能夠實現判斷模板參數的類型來完成不一樣的工做。在編程的時候,若是碰到相似「若是類型是A時進行a操做,若是類型是B進行b操做」的狀況,說明能夠使用模板特化了。模板

3、多態方法

模板特化能夠實現對外統一的接口。但是內部實現卻根據不一樣的模板參數有不一樣的實現。工作

相關文章
相關標籤/搜索