次のコードをコンパイルしようとすると
int main()
{
unsigned char uc;
char & rc = uc;
}
g++ は次のエラーを返します: タイプ 'unsigned char' の式からのタイプ 'char&' の参照の初期化が無効です。unsigned char の代わりに signed char を使用すると、同じことが起こります。しかし、以下はうまくコンパイルされます
int main()
{
unsigned char uc;
const char & rc = uc;
}
「const char &」を初期化できるのに、「unsigned char」型の変数で「char &」を初期化できないのはなぜですか?