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++有很重要的地位。好好学习!