01. 显示具体化

创建日期:2024-07-19
更新日期:2025-02-01

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;
}