Mensagem de erro "tipos conflitantes deduzidos para o parâmetro 'const T'"

O que estou tentando fazer:

Escreva uma versão especializada do modelo do exercício anterior para lidar comvector<const char*> e um programa que usa essa especialização.

Eu escrevi o programa assim:

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");

mas eu recebo o erro que diz

deduced conflicting types for parameter ‘const T’ (‘std::basic_string<char>’ and ‘char [4]’)

Eu quero saber como lidar com isso. Além disso, na função de modelo, parece que uma matriz pode ser alterada para o ponteiro, por que meu programa não pode lidar com isso?

questionAnswers(2)

yourAnswerToTheQuestion