при определении следующего шаблона функции
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* &
)?