Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 June 23

A

Arjaz in IT KPI C/C++ ХВ (не UB)
Посмотрите на эту мерзость
источник

A

Arjaz in IT KPI C/C++ ХВ (не UB)
Arjaz
Посмотрите на эту мерзость
Оно вызовет второй кейс
источник

A

András in IT KPI C/C++ ХВ (не UB)
Arjaz
Оно вызовет второй кейс
А не має?
источник

A

András in IT KPI C/C++ ХВ (не UB)
Ти з двох варіянтів викликаєш третій
источник

A

András in IT KPI C/C++ ХВ (не UB)
Воно й викликає останній
источник

A

Arjaz in IT KPI C/C++ ХВ (не UB)
В моём идеальном мире это бы не компилилось
источник

A

Arjaz in IT KPI C/C++ ХВ (не UB)
Оно понятно, почему второй вызывает
источник

A

Arjaz in IT KPI C/C++ ХВ (не UB)
Но там enum class
источник

OS

Oleksandr Syrotiuk in IT KPI C/C++ ХВ (не UB)
Arjaz
В моём идеальном мире это бы не компилилось
ну, вряд ли компайлер может посмотреть, в каком скоупе лежат значения enum Types
источник

A

András in IT KPI C/C++ ХВ (не UB)
Arjaz
В моём идеальном мире это бы не компилилось
Ну так ти ж можеш передати не константу, а змінну
источник

A

András in IT KPI C/C++ ХВ (не UB)
І як би він тоді мав визначити, чи повинно воно компілюватися
источник

A

Arjaz in IT KPI C/C++ ХВ (не UB)
источник

A

Arjaz in IT KPI C/C++ ХВ (не UB)
Выбросить static_cast к клас-инамам -- сразу заживём
источник

OS

Oleksandr Syrotiuk in IT KPI C/C++ ХВ (не UB)
Arjaz
Выбросить static_cast к клас-инамам -- сразу заживём
Начнем с того, что использовать класс-енам вместе с кастом чисел к нему - уже запашок
источник

YS

Yevhen Salatskiy in IT KPI C/C++ ХВ (не UB)
Oleksandr Syrotiuk
Начнем с того, что использовать класс-енам вместе с кастом чисел к нему - уже запашок
Разве что с ассертом вместе
источник

OS

Oleksandr Syrotiuk in IT KPI C/C++ ХВ (не UB)
Yevhen Salatskiy
Разве что с ассертом вместе
хорошая идея, но тогда я бы явно определил значения в енаме в придачу
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
Arjaz
Посмотрите на эту мерзость
у меня не вызывает
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
тут нюанс скорее в отсутствии return, поэтому и не нужно забывать о default
источник

A

Arjaz in IT KPI C/C++ ХВ (не UB)
default не даст ворнинг, если ты добавишь что-то в клас-инам
источник

TS

Till Schneider in IT KPI C/C++ ХВ (не UB)
cpp code:
auto x = []<typename T>(T x) constexpr mutable noexcept(noexcept(x))
            -> int requires(sizeof(T) > 1) {
  return x;
}
(42);

std::cout << x;


output:
42
источник