/*
功能:c++模板的顯式具體化練習。
常規模板:add加法模板,採用顯式具體化模板方式,具體化乙個複數相加的add函式。
總結:顯式具體化是針對常規模板進行的,因此必須與常規模板的定義格式相符合。如下程式所示,除any型別可以用乙個具體化的c++型別
替換外,其它應該保持與常規模板一致,否則可能不能進行編譯
編譯環境:visual studio 2008
*/
#include
//宣告常規函式模板原型
template
any add(const any &a,const any &b);
//定義表示複數的結構
struct complex
;//宣告顯示具體化函式原型
template <> complex add(const complex &,const complex &);
using namespace std;
int main(void)
;complex sc2 = ;
complex addsc = add(sc1,sc2);
cout << "(sc1 + sc2) .real = " << addsc.real ;
cout << ", (sc1 + sc2) .imaginary = " << addsc.imaginary << endl; ;
return 0;
}template
any add(const any a,const any b)
template <> complex add(const complex &ca,const complex &cb)
C 函式模板的顯式具體化
我們知道可以利用函式模板來處理不同的資料型別,然而函式模板對於某些資料型別並不能處理,具有一定的侷限性。那麼應該如何解決該侷限性呢?例如經典的資料交換函式swap template typename t void swap t a,t b 我們可能希望利用上述的函式模板實現不同型別資料的交換,然而對...
C 函式模板的顯式具體化
在c 中,我們可以使用函式模板來增加 的復用性,但是並不是所有的型別都可以呼叫函式函式模板來處理,如陣列和結構體資料型別。這就是函式模板的侷限性。struct job 交換兩個這種結構的內容,原來的模板使用以下 進行交換 temp a a b b temp 由於c 允許將乙個結構賦給另乙個結構,因此...
C 模板顯式具體化
目錄 出品 coder梁 id coder lt 前文當中說mjwgjecfta了,模板函式雖然非常好用,但是也存在一些問題。比如有的操作並不是對所有型別都適用的,針對這種情況c 提供了乙個解決方案,就是針對特定型別提供具體化的模板定義。這裡的具體可以理解成型別的具體。我們來看乙個c primer當...