STL全特化与偏特化
在泛型编程中,常常会使用一些非完全泛型的类模板,这就是特化。
如何理解全特化呢?如上图所示,第一个template class是空间配置器的类模板,第二个就是一个全特化的template class。全特化是为了节省时间或空间而重写的一种类模板。
你可以这样理解,一个类模板,它在正常情况下都会正常使用第一个标准的类模板,当遇到几个特殊的泛化类型时,为其提供了专有的类。
全特化即需要泛型的参数该特化模板类全都指定了。(上例即指定为void)
偏特化分两种
①特化部分参数
如上图左侧所示,该类模板偏特化了第一个类型为bool类型
②偏特化一类参数
这个理解有点麻烦,它偏特化一类类型,如上图右侧所示,它偏特化了指针这类泛型,所有泛型类型为指针的类型即使用下面的偏特化类模板。
不积小流无以成江河