Я заметил, что присваивание 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 и C++ , Разница между ссылкой и константной ссылкой как параметром функции?), но, похоже, они не касаются моего вопроса.
Мои извинения, если на этот вопрос уже был дан ответ ранее.