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