asignando char a int referencia y const int referencia en C ++

Me di cuenta de que asignando unchar a unconst int& compila, pero asignandolo a unint& Da un error de compilación.

char c;
int& x = c;    // this fails to compile
const int& y = c;    // this is ok

Entiendo que no es una buena práctica hacer esto, pero tengo curiosidad por saber la razón por la que sucede.

Busqué una respuesta buscando "Asignar a referencia de diferente tipo", "Asignar char a una referencia int", y "Diferencia entre referencia const y referencia no const", y encontré una cantidad de publicaciones útiles (int vs const int & , Comportamiento extraño al asignar un char a una variable int , Convertir char a int en C y C ++ , ¿Diferencia entre referencia y referencia constante como parámetro de función?), pero no parecen estar abordando mi pregunta.

Mis disculpas si esto ya ha sido respondido antes.

Respuestas a la pregunta(3)

Su respuesta a la pregunta