Я написал следующий код и для указателя показывает правильный тип аргумента, но когда я использую ссылку, он показывает только int
и не const
. Зачем?Почему аргумент шаблона ссылки не выводит const?
template <typename T>
void increment(T& x)
{
std::cout << "Argument type is : " << typeid(x).name() << std::endl;
//x = x + 1;
}
template <typename T>
void increment(T* x)
{
std::cout << "Argument type is : " << typeid(x).name() << std::endl;
//x = x + 1;
}
int main()
{
const int x = 0;
const int y = x;
increment(x);
increment(&y);
}
Выход:
Argument type is : int
Argument type is : int const *
Пожалуйста, вы можете объяснить, почему const
не показана со ссылкой?
Поскольку 'const' является классификатором, а не типом? – arrowd
почему тогда он показывает этот определитель для аргументов указателя? – Kapil
Попробуйте выполнить печать: 'typeid (int const) .name()'. – Nawaz