Re[11]: enum class and if expression
От: B0FEE664  
Дата: 19.12.19 16:00
Оценка:
Здравствуйте, rg45, Вы писали:

R>Ага, сначала были плохие плюсовики, теперь вот плохой C++. Так с этого нужно было начинать.


Вообще-то enum в С++ всегда был и остаётся каким-то недоразумением. Сначала значения почему-то были видны наружу enum и засоряли глобальное пространство. При этом размер занимаетмой переменной почему-то зависит от значений enum'а. Потом сделали enum class, но не подумали об частой операции, когда нужно сконвертировать значение enum'а в другой тип. Вместо того, чтобы придумать удобный синтаксис разрешили инициализацию значениями не входящими в перечисление:
#include <iostream>
#include <cstdlib>
#include <utility>

enum class EE: unsigned
{
  asdf = 0, gkl = 1
};

int main() {
    // your code goes here
    
    EE x{9};
    
    return 0;
}

Причем разрешили только для {}, а для EE x(9); — нельзя, хотя по всей остальной логике должно быть ровно наоборот. И это при том, что таких простых операций, как, например, взять максимальное значение из перечисления не предусмотрено в языке.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.