类模板的特化和偏特化

来源:互联网 发布:java arraylist排序 编辑:程序博客网 时间:2024/04/27 21:01

模板的特化是指对特定的类型,进行特定的实现。

// general version
template<class T>
class Compare
{
public:
    static bool IsEqual(const T& lh, const T& rh)
    {
        return lh == rh;
    }
};

// specialize for float
template<>
class Compare<float>
{
public:
    static bool IsEqual(const float& lh, const float& rh)
    {
        return abs(lh - rh) < 10e-3;
    }
};

偏特化是指对特定的类型,进行特定的实现,但其中有一些是非特定的。

template<class T1, class T2>
class A
{
}

template<class T1>
class A<T1, int>
{

函数模板不允许被特化和偏特化,但函数模板允许重载。

原创粉丝点击