我想要一個功能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
不是很好定義的類型,直到它一直容器特別爲特定類型。是否有可能做我想做的事,但以其他方式。
查找「模板模板參數」(不是拼寫錯誤?單詞模板使用兩次)。 –
@san我之前的評論已過時(我刪除了他們)。問題是'std :: allocator'是一個模板,所以你需要將它作爲模板模板參數來接受:'template class Alloc>'。 – jogojapan
@ n.m。謝謝。這對我來說是新的 – san