????? template <typename T>
?T f(T a1,T a2)
{
.........................
}
顯示實參
f<int >(1,2);
顯示實例化
template? int f<int >(int ,int);(申明)
顯示特化
? template <> int f<int> (int,int)(定義)
{
????? ...........
}
強制 從模版中挑選
?
f<>(2,3);
在函數調用,取函數地址時 實參推演(左值,限定,基類)
?int (* p)(int ,int)=&f;???? int(*p) (int ,int )=& f<int,int>
? f(2,3);???????????????????????????? f<int,int>(2,3);
1.編譯模版時,編譯器檢查
2.實例化時(在實例化點 再編譯),編譯器檢查
函數模版 只能出現在模版定義中
函數模版實例 可以出現在模版定義和非定義中
//////////////////////
1.非模版函數優先級高
2.候選---〉可行實例化(有特化否〈)(有非模版否)--〉選中
3.依賴模版參數的在實例點解析,不依賴的在模版定義時解析
posted on 2006-05-27 15:31
黃大仙 閱讀(998)
評論(0) 編輯 收藏 引用 所屬分類:
c++