Вопрос о частичной специализации шаблона 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 для наборов, один для векторов, один для диапазонов ..., каждый раз с разными алгоритмами).

Спасибо!

5
задан Frank 9 June 2011 в 19:54
поделиться