Я заметил, что назначение компиляции char
в const int&
, но присвоение ему int&
дает ошибку компиляции.
char c;
int& x = c; // this fails to compile
const int& y = c; // this is ok
Я понимаю, что это не очень хорошая практика, но мне любопытно узнать причину, почему это происходит.
Я искал ответ, ища "назначение на ссылку другого типа", "назначение char для ссылки на int" и "разность между константной ссылкой и неконстантной ссылкой" и столкнулся с числом полезных сообщений (int vs const int &, Странное поведение при присваивании переменной char переменной int, Преобразовать char в int в C и С++, Разница между ссылкой и ссылкой на константу как параметр функции?), но они, похоже, не рассматривают мой вопрос.
Мои извинения, если это уже было сказано ранее.