模板的全特化
在使用模板的时候,可能会存在以下问题。
我们若传入指针,则可能导致比较的结果不符合我们的预期。
此时我们就需要使用全特化模板了。
所谓全特化模板,就是将所有模板的参数指定为固定的类型,在我们使用该固定类型调用函数或类时,就会调用全特化模板。
在我们调用某类或函数时,若普通模板和特化模板都满足,则优先调用特化模板。
对于函数来说,只能全特化,而不能偏特化。
类既可以全特化,也可以偏特化。
模板的偏特化
我们在特化模板时,不一定要将模板参数全部特化为固定类型。
上图的特化表现为范围特化,是缩小了模板的范围,如const,引用,指针等等。
也可以只特化模板的一部分。
上图的特化表现为数量偏特化。
适配器模式解析
模板传输的是类型,而自定义类型也是类型,当我们要实现某个类时,这个类的某些接口就可以使用该模板的接口来替代,这就是适配器。
如STL中的栈的实现。
在比如反向迭代器的实现。