Войти
Arctic EngineФорум

Нужна помощь в разработке (3 стр)

Страницы: 1 2 3 4 59 Следующая »
#30
15:52, 31 авг 2021

MrShoor
Я стараюсь избегать enum class из-за UB

#31
21:07, 31 авг 2021

Huldra
> Я стараюсь избегать enum class из-за UB
какого UB ?

#32
22:01, 31 авг 2021

MrShoor
> какого UB ?

enum access_t { read = 1, write = 2, exec = 4 }; // enumerators: 1, 2, 4 range: 0..7
access_t x = static_cast<access_t>(8.0); // undefined behavior since C++17
access_t y = static_cast<access_t>(8);   // undefined behavior since C++17

enum foo { a = 0, b = UINT_MAX }; // range: [0, UINT_MAX]
foo x= foo(-1); // undefined behavior since C++17,
                // even if foo's underlying type is unsigned int
#33
22:10, 31 авг 2021

Huldra
А нафига ты используешь енам там, где логично взять std::bitset?
И причём тут вообще проблема знаковых типов?

#34
22:20, 31 авг 2021

Да может вы и правы и стоит заменить enum на enum class

Прошло более 8 месяцев
#35
23:54, 6 мая 2022

Так никто и не нашелся, пришлось делать самостоятельно

#36
0:02, 7 мая 2022

Huldra
> Я стараюсь избегать enum class из-за UB
После подобных заявлений шанс найти кого-то стремится к 0.

#37
0:03, 7 мая 2022

Почему?

#38
0:39, 7 мая 2022

Huldra
> Почему?
Никто из хороших программистов не хочет иметь дело с глупым начальником. А те, кто не понимают глупость подобных утверждений не потянут.

#39
0:41, 7 мая 2022

samrrr
Почему сразу "с глупым начальником" ?

#40
0:49, 7 мая 2022

Huldra
> Почему сразу "с глупым начальником" ?
Сегодня ты избегаешь class enum по надуманному предлогу, завтра тебе захочется запретить методы и приватные переменные потомучто они тоже имеют уб при кривом использовании.

#41
0:55, 7 мая 2022

В чем надуманность?
Если значение за пределами диапазона значений enum будет скастовано к enum, будет UB.
Способы получить: читать данные из файла, парсить данные полученные по сети, плохо валидировать ввод от пользователя.

#42
2:00, 7 мая 2022

Huldra
> Так никто и не нашелся, пришлось делать самостоятельно
А что искалось то? Сделать аппаратные спрайты?

#43
2:17, 7 мая 2022

Huldra
> Способы получить: читать данные из файла, парсить данные полученные по сети,
> плохо вали
Если ты конвертируешь в enum рандомные данные, то надо делать проверку на их валидность.
Мне кажется, со всеми этими перделками, навроде static_cast, проггеры забыли, что значит кодить тщательно.
Для проверки соответствия рандомных данных валидному значению потребуется runtime проверка. static_cast тут просто ничем не может помочь.

#44
8:23, 7 мая 2022

MrShoor
> А что искалось то? Сделать аппаратные спрайты?
ну да

Страницы: 1 2 3 4 59 Следующая »
Arctic EngineФорум