我有一個類看起來像這樣:C++模板類
#include <vector>
#include "record.h"
#include "sortcalls.h"
template<
typename T,
template<typename , typename Allocator = std::allocator<T> > class Cont = std::vector>
class Sort: public SortCall {
此代碼工作,我打電話像這樣從其他類:
Comparator c; // comparison functor
Sort< Record, std::vector > s(c);
現在我希望能夠將容器切換到另一個容器,比如列表。 所以我認爲typedef會很整齊。它應該是這樣的
typedef std::vector<Record> container; // Default record container
template<
typename T,
template< typename, typename container > // ???
class Sort: public SortCall {
我不確定我是否理解;你沒有在任何地方使用'排序'。另外,'_Alloc'保留給編譯器;你應該改變它爲'Allocator'或者其他東西。 – GManNickG 2010-02-10 21:54:28
我不確定我明白爲什麼模板參數必須這麼複雜。爲什麼不用'template class Sort ...'用'Sort s''? –
UncleBens
2010-02-10 22:05:06
@GMan thx。改變了它。 – mre 2010-02-10 22:06:49