函式模板的特化

2021-07-03 19:53:00 字數 1160 閱讀 2532

函式模板的特化

該定義中乙個或多個模板形參的實際型別或實際值是指定的。特化形式如下:

關鍵字template後面接一對空的尖括號(< >);

再接模板名和一對尖括號,及括號中指定這個特化定義的模板形參;

函式形參表

函式體

template<>

int compare(const char *const &v1, const char *const &v2)

特化的宣告必須與對應的模板相匹配。

當呼叫compare函式的時候,傳給它兩個字元指標,編譯器將呼叫特化版本。編譯器將為任意其他實參型別呼叫泛型版本。

const char *cp1 = "world", *cp2 = "hi";

int i1, i2;

compare(cp1, cp2);//呼叫特化版本

compare(i1,i2)//呼叫的版本type為int

template

<

typename

t>

intcompare(

const

t &v1,

const

t &v2)

if(v2 < v1)

return0;

} template

<>

intcompare<

const

char

*>(

const

char

*const

&v1,

const

char

*const

&v2)

int_tmain(

intargc, _tchar* argv)

函式模板的特化

include include using namespace std 泛型版本 template int compare const t v1,const t v2 為實參型別 const char 提供特化版本 template int compare const char const v1,c...

函式模板「偏特化」 (C )

模板是c 中很重要的乙個特性,利用模板可以編寫出型別無關的通用 極大的減少了 量,提公升工作效率。c 中包含類模板 函式模板,對於需要特殊處理的型別,可以通過特化的方式來實現特定型別的特殊操作。最近工作中,需要處理cont這種復合型別和t這種自定義型別的模板特化,因為cont型別有五種左右需要特殊處...

C 類模板 函式模板全特化 偏特化的使用

一 類模板全特化 偏特化 pragma once include程式設計客棧 include template class tc void funtest template class tc void funtest template void tc funtest main.cpp include...