一个特例化就是模板的一个独立的定义

定义模板特例化
用template加空尖括号对表明我们正在实例化一个模板,模板特例化本质上是创建一个实例,而不是重载函数
类模板特例化需要在模板的命名空间内,且不必为所有模板参数提供实参,在使用时用户要为未指定的模板参数提供实参(在模板名后面的尖括号中指出)

template<class T> struct remove
{
    typedef T type;//普通版本
};
template<class T> struct remove<T&>
{
    typedef T type;//部分特例化版本
};

允许只特例化成员