2012-11-01 39 views
2

我想要一個功能foo沿着這些線路功能模板,用於構建不同類型的

template <class T, class Alloc> 
void foo(T param, Alloc a) { 
    vector<int, Alloc<int> > vect_of_ints; 
    list<float, Alloc<float> > list_of_floats; 
    do_something() 
} 

std::allocator a 
foo(42, a); 

這失敗,我想是因爲std::allocator不是很好定義的類型,直到它一直容器特別爲特定類型。是否有可能做我想做的事,但以其他方式。

+1

查找「模板模板參數」(不是拼寫錯誤?單詞模板使用兩次)。 –

+0

@san我之前的評論已過時(我刪除了他們)。問題是'std :: allocator'是一個模板,所以你需要將它作爲模板模板參數來接受:'template