我在編譯用下面的代碼時間麻煩:C++模板部分特例問題
template <typename T,
template <class T, class Allocator = std::allocator<T> > class C>
bool is_in(const C<T>& a, const C<T>& b);
template <typename T, std::vector> // HERE
bool is_in(const std::vector<T>& a, const std::vector<T>& b)
{
return false; // implementation tbd
}
...
vector<int> a, b;
cout << is_in(a,b) << endl;
該錯誤消息是(在標出「這裏」):
error: 'std::vector' is not a type
(的當然,我有包括向量從std!)。任何建議?我弄了一會兒,但我已經到了可以使用一些幫助的地步:-)我需要部分地專門化最初的模板聲明,以便我可以讓編譯器根據實際的類型容器C(將有一個is_in用於集合,一個用於矢量,一個用於範圍......,每次都有不同的算法)。
謝謝!
一種解決方法是將功能的一類。 – 2011-06-09 20:02:21
Booouuuhhhh! :-)當然,這將削減我的努力 - 我將不得不推出一個功能對象... – Frank 2011-06-09 20:03:14