模板化vs模板特化vs模板偏特化

模板化vs模板特化vs模板偏特化


编译器在编译阶段进行匹配时,抉择顺序:模板偏特化>模板特化>模板化

  • 代码直观
//模板化
template <typename T>
class CTemplate
{
public:
    CTemplate()
    {
        std::cout << "一般模板" << std::endl;
    }
};

//模板特化
template <>
class CTemplate<double>
{
public:
    CTemplate()
    {
        std::cout << "模板特化" << std::endl;
    }
};

//模板偏特化  主要是原生指针类型、常指针类型
template <typename T>
class CTemplate 
{
public:
    CTemplate()
    {
        std::cout << "模板偏特化" << std::endl;
    }
};

void TestTemplate()
{
    CTemplate<int> obj1;
    CTemplate<double> obj2;
    CTemplate<double* > obj3;
}

你可能感兴趣的:(c++编程,template)