模板偏特化有什么现实的例子吗,到底有什么用

模板偏特化有什么实际的例子吗,到底有什么用?
模板偏特化实际的例子有哪些?不用举vector的例子,那我也看不懂,要短而小的例子,并且很有用的。
------解决思路----------------------
特化不只是为了性能优化,更多是为了让模板函数能够正常工作,最典型的例子就是STL中的iterator_traits
algrithm中大多数算法通过iterator对象来处理数据,但同时允许以指针代替iterator对象——这是为了支持C-style array。如果直接操作iterator,那么为了支持指针类型,每个函数都要进行重载,因为指针没有::valut_type类型,也没有.swap成员方法……这样就会很麻烦。为了解决这一问题,STL使用了iterator_traits,并为指针类型进行特化,算法通过它来操作iterator,不需要知道实际操作的是iterator对象还是指针。

template <typename IteratorClass>
class iterator_traits
...

template <typename ValueType>
class iterator_traits<ValueType *>
...

template <typename ValueType>
class iterator_traits<ValueType const *>
...


后两个版本的iterator_traits就是对指针类型的特化,这也是一种偏特化的常见形式。