???????????????????????????????????
1 template <typename _Ty>
2 struct A
3 {
4     // ???????????a
5     // ???????????b
6     // ......
7     template <typename __Ty>
8     struct IsCharPType
9     {
10         const static bool b = false;
11     };
12
13     template<>
14     struct IsCharPType<char*>
15     {
16         const static bool b = true;
17     };
18
19     void func()
20     {
21         if (IsCharPType<_Ty>::b)
22             std::cout << "special type." << std::endl;
23         else
24             std::cout << "common type." << std::endl;
25     }
26 };
???????????????????????????壬???????????????????????????????
1 template <typename _Ty>
2 struct A
3 {
4     // ???????????a
5     // ???????????b
6     // ......
7     template <typename __Ty>
8     struct TypeClass
9     {
10     };
11
12     template <typename __Ty>
13     void funcImpl(const TypeClass<__Ty>&)
14     {
15         std::cout << "common type." << std::endl;
16     }
17
18     void funcImpl(const TypeClass<char*>&)
19     {
20         std::cout << "special type." << std::endl;
21     }
22
23     void func()
24     {
25         funcImpl(TypeClass<_Ty>());
26     }
27 };