instance.cpp
#include <iostream>
using namespace std;
// 模板函数
template <typename T1, typename T>
T1 Add(T a, T b)
{
cout << "template <typename T> T Add(T a, T b);" << endl;
return a + b;
}
// 显式具体化
template <>
double Add<double>(double a, double b)
{
cout << "template <> double Add<double>(double a, double b);" << endl;
return a + b;
}
void inst();
int main()
{
int a = 1, b = 2;
double m = 1.1, n = 1.2;
cout << "add two int: " << endl;
cout << Add<int>(a, b) << endl;
cout << "add two double: " << endl;
cout << Add<double>(m, n) << endl;
inst();
}
// template int Add<double, int>(double, double);
void inst()
{
double m = 1.1, n = 1.2;
cout << "add two double in inst" << endl;
cout << Add<double>(m, n) << endl;
}