C++. Почему перечисление (во время определения) нельзя инициализировать путем сужающего преобразования?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C++. Почему перечисление (во время определения) нельзя инициализировать путем сужающего преобразования?

Сообщение Anonymous »


С помощью следующего фрагмента кода

const int i = 1.1; // ОК, сужающая конверсия константный интервал j = 1; // ХОРОШО const double k = 1,1; // ХОРОШО константный символ с = 1; // ХОРОШО перечисление е { Я = я, // ОК J = j, // ОК K = k, // Неверно, сужающее преобразование не разрешено C = c, // ОК, расширяющее преобразование разрешено. }; Я понятия не имею, почему перечисления не принимают десятичное значение при инициализации, поскольку перечисления были разработаны до C++ 11 и часто допускают сужающее преобразование. Хотя разумно сказать: «Так гласит стандарт». Мне интересно, существовали ли какие-либо единые критерии для определения возможности выполнения сужающего преобразования (до C++11)?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»