用法
模板参数就是模板的参数,它是一种模板技巧,形式如下:
1 2 3 4 5 6 7 8 9 10 11
| template<typename T, template<typename U> typename Container> class Foo{ private: Container<T> c; public: Foo(){ for(long i = 0; i < SIZE; ++i){ c.insert(c.end(), T()); } } }
|
当我们需要向模板参数传递参数的时候,例如我需要一个形如Foo<string,list>这样的类,在使用的时候可以这么定义:
1 2 3 4 5 6
| template<typename T> using Lst = list<T, allocator<T>>;
Foo<string, list> mylist1; Foo<string, Lst> mylist2;
|
下面这个不是模板参数,因为list已经绑定了int类型的模板参数.
1 2 3 4 5 6 7 8 9 10 11
| template <class T, class Sequence = deque<T>> class stack { friend bool operateo== <> (cosnt stack&, const stack&); friend bool operateo< <> (cosnt stack&, const stack&); protected: Sequence c; ...... }; stack<int> s1; stack<int, list<int>> s2;
|