параметр типа в шаблоне int сравнить (const T &, const T &) - PullRequest
0 голосов
/ 13 июля 2020

при определении следующего шаблона функции

template<typename T>
int compare(const T& lhs, const T& rhs)
{
    // body 
}

, тогда

const char* p1 = "abc";
const char* p2 = "efg";
compare(p1, p2);

почему компилятор выводит T как const char* (так что тип lhs и rhs равен const char* const & ), а не char* (так что тип левого и правого правых const char* &)?

1 Ответ

1 голос
/ 13 июля 2020

Если у вас есть const T& lhs, const применяется к типу T. Поскольку T является непостоянным указателем на постоянный символ, a const char *, применение к нему const дает const char * const или постоянный указатель на постоянный символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...