模板是編譯時多型, 函式體內是執行時,執行時判斷型別是type_id函式返回type_info型別的物件
這裡只需要個模板特化就可以了
templatet work( t )
template<> // 特化版
int work( int a)
也就是你要知道t是什麼型別,你就必須提供靜態版本的多型.
編譯時不可能有什麼函式來給你判斷t是什麼型別.
#include using namespace std;
template < typename t >
t maxvalue (const t array, const int size)
return t;
}template <>
string maxvalue(const string array, const int size)
if(s_>s)
k=i;
} string r=array[k];
return r;
}
C 模版特例化和模版偏特化
例子 第乙個版本 可以比較任意兩個型別 template int compare const t,const t 第二個版本處理字串字面常量 過載實現 template int compare const char n const char m 第三個版本 模版特例化 template int co...
C 泛型程式設計 五 模版過載與特例化
前文回顧 c 泛型程式設計 一 基本概念 c 泛型程式設計 二 函式模版 c 泛型程式設計 三 模版實參推斷 c 泛型程式設計 四 類模板 函式模版可以被另乙個模版或者乙個普通非模版函式重做 名字相同的函式必須具有不同數量或者型別的引數。根據引數推斷只有乙個版本是可行的,則選擇該版本 都是可行的,匹...
模板特例化 過載
名詞解釋 靜多型 靜多型 static polymorphism 是多型性的一種,繫結發生在編譯期 compile time 稱為靜態繫結static binding 非引數化多型和引數化多型並不衝突,而且相輔相成,它們混合使用能夠帶來更大的靈活性,函式模板 過載就是很好的例子。include in...