Code Bye

关于类模板的一个问题

template< template<class T> class T1 >
//这个类模板该怎么理解?
解决方案

3

以“有一个类型模板参数的模板”作为模板参数的模板

3

模板参数本身也是个模板,后者的模板参数是个普通的类类型。

21

http://stackoverflow.com/questions/6484484/template-template-parameters
template<typename T>
class type_traits_1 {
public:
    typedef T result_type;
};
// 特化若干..
template<typename T>
class type_traits_2 {
public:
    typedef T result_type;
};
// 特化若干...
template<template<typename> class TypeTraits> 
class parser {
public:
    typedef typename TypeTraits<int>::result_type int_result_type;
    typedef typename TypeTraits<char>::result_type char_result_type;
    //...
};
inline void foo () {
    parser<type_traits_1>::int_result_type int_result1;
    parser<type_traits_2>::int_result_type int_result2;
    //...
};

3

模板在c++有很重要的地位。好好学习!

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于类模板的一个问题