int a = 0; short b{a}; short c{0};
Сужение из буквальным не вызывает предупреждения
Компилятор дает Уоринг для short b{a}
. Я могу это понять, потому что int
сужается до short
.
Однако, это не дает предупреждение short c{0}
, что для меня странно. Я помню, что для буквенных целых чисел тип 0
должен составлять не менее int
. Таким образом, сужение от int
до short
происходит здесь. Почему компилятор не дает предупреждение?
вы думаете, "после того, как неотъемлемые акции" ненужный? – FunkyBaby
@FunkyBaby Я думаю, что это просто означает технически, константа будет сначала повышаться, а затем повышаемое значение будет проверено, может ли оно вписаться в целевой тип. – songyuanyao