c++ 模板特化與局部特化c++
template<typename T> class test{ T i; };
template<> class test<int>{ int i; };
經過上面的例子能夠看出,能夠針對類型int,定義一個新的處理。當外部使用時,穿進來的類型是int的話,就會進入到特化定義的類裏。微信
template<typename T, typename M> class test{ T i; M m; };
template<typename M> class test<bool, M>{ int i; };
上面的例子,把類型T特化了,類型M保留了,因此是部分特化。也就是當外部使用時,穿進來的T的類型是bool類型的話,就進入到特化定義的類裏。學習
template<typename T> class test{ T i; };
template<typename T> class test<T*>{ T i; };
template<typename T> class test<const T*>{ T i; };
上面的例子,把類型限定了,若是外部穿進來的是指針則有特殊的處理,若是穿進來的是const指針,則有另外的特殊處理。指針