关于一个模板类特化的概念有关问题
关于一个模板类特化的概念问题
如果一个特化无法从模板定义某个成员,该特化类型的对象就不能使用该成员
敢问各位大大,这句话是什么意思?
------解决方案--------------------
会不会是这个意思
虽然对于主模板来说 类模板的完全特化或者局部特化是单独的实体
但是用户在根据主模板的接口编写泛型代码时 他们会期望代码同样可以处理特化的情况
也就是说 完全特化或者局部特化通常必须重新实现主模板的能力
为了应付这种麻烦情况 我们可以使用模板成员的局部特化
同样的 该特别定制的模板成员特化的成员名与签名最好与主模板 保持一致 以支持泛型代码的调用
另外的 如果 已经存在一种局部特化 举个例子:
主模板
template<typename T> class A{};
局部特化
template<typename T> class A<T *>{};
那么 模板成员中针对 指针 类型的局部特化都应该与上面的局部特化保持一致(签名)
不知道对不对 若有不对 希望大家指正
------解决方案--------------------
也就是说如果模板里面的某个成员函数在特化版本里面没有实现,那么特化版本的对象就无法调用该成员函数
如果一个特化无法从模板定义某个成员,该特化类型的对象就不能使用该成员
敢问各位大大,这句话是什么意思?
------解决方案--------------------
会不会是这个意思
虽然对于主模板来说 类模板的完全特化或者局部特化是单独的实体
但是用户在根据主模板的接口编写泛型代码时 他们会期望代码同样可以处理特化的情况
也就是说 完全特化或者局部特化通常必须重新实现主模板的能力
为了应付这种麻烦情况 我们可以使用模板成员的局部特化
同样的 该特别定制的模板成员特化的成员名与签名最好与主模板 保持一致 以支持泛型代码的调用
另外的 如果 已经存在一种局部特化 举个例子:
主模板
template<typename T> class A{};
局部特化
template<typename T> class A<T *>{};
那么 模板成员中针对 指针 类型的局部特化都应该与上面的局部特化保持一致(签名)
不知道对不对 若有不对 希望大家指正
------解决方案--------------------
也就是说如果模板里面的某个成员函数在特化版本里面没有实现,那么特化版本的对象就无法调用该成员函数