C++ 函數模板重載
阿新 • • 發佈:2019-04-17
png double 模板 sin brush str div val 一起
函數模板可以像普通函數那樣重載。
C++ 編譯器會從不同的候選中匹配一個並進行調用。
即使不涉及到模板,這種匹配的規則也很復雜,現在還有加上模板一起匹配。
先來個小例子:
#include <iostream> // maximum of two int values int max(int a, int b) { using namespace std; cout << "non template for two ints" << endl; return b < a ? a : b; } // maximum of two values of any type template<typename T> T max(T a, T b) { using namespace std; cout << "template" << endl; return b < a ? a : b; } int main() { ::max(7, 42); ::max(7.0, 42.0); ::max(‘a‘, ‘b‘); ::max<>(7, 42); ::max<double>(7, 42); ::max(‘a‘, 42.7); }
然後對應的結果
待續
C++ 函數模板重載