Сообщение об ошибке «выведены конфликтующие типы для параметра« const T »»
Что я пытаюсь сделать:
Напишите специализированную версию шаблона из предыдущего упражнения для обработкиvector<const char*>
и программа, которая использует эту специализацию.
Я написал программу так:
template<typename T>
int count(vector<T> tvec, const T &t);
template<>
int count(vector<const char *> tvec, const char *const &s)
{
int count = 0;
for (auto c : tvec)
if (c == s) {
++count;
}
return count;
}
template<typename T>
int count(vector<T> tvec, const T &t)
{
int count = 0;
for (auto c : tvec)
if (c == t) {
++count;
}
return count;
}
cout << count(svec, "GUO");
но я получаю ошибку, которая говорит
deduced conflicting types for parameter ‘const T’ (‘std::basic_string<char>’ and ‘char [4]’)
Я хочу знать, как справиться с этим. и далее, в функции шаблона, кажется, что массив может быть изменен на указатель, почему моя программа не может обработать это?