Template本身可以做为另一个template的参数而存在。但是作为参数的template无法在主template实例化的时候显式指定其类型,如下图所示:
图中template<class TypeIn> class代表这是一个模版类,而TypeOut是一个类型参数。
下面是测试代码:
如上图所示错误提示可以看出,Test的特化类型只能是个模版类,而不能是一个实例化的模版类,但是这个模版类必须有一个被实例化的时刻,所以可以推断出这个过程应该是在Test内部实现的。
如下图所示:
与此同时,这个主模版类还可以混合使用类型参数。如下图所示: