Size: a a a

2021 July 08

АР

Андрей Руссков... in pro.cxx
нет, тернарный оператор должен вычисляться в common_type_t<lhs_type, rhs_type>
источник

АК

Александр Караев... in pro.cxx
Там в обратную сторону связь. common_type реализуется как decltype(true ? a : b), поэтому вопрос не к трейту, а к тернарнику
источник

LA

Liber Azerate in pro.cxx
А как надо до этого догадаться? Типы отдельные, друг во друга не кастуются, промоутить их некуда, откуда догадаться, что надо скаствовать в базу? Если будет тернарник с А и С, то догадается
источник

АР

Андрей Руссков... in pro.cxx
ah yis, infamous c++'s reverse logik
источник

АР

Андрей Руссков... in pro.cxx
но в любом случае понятие common type в стандарте есть, как более базовое. А уже и тернарник и трейт должны его реализовать
источник

EP

Egor Pugin in pro.cxx
ну если должны , пусть реализуют, в стандарте про это есть?
источник

АР

Андрей Руссков... in pro.cxx
попытаться скастовать в каждый наиболее базовый публично отнаследованный класс, потом от него пойти обратно наверх?
источник

K

Kelbon in pro.cxx
ну уж не надо в сложности.... Просто узнать какие есть приведения у одного и второго и найти среди них общие типы
источник

LA

Liber Azerate in pro.cxx
Однако так не делается и не должно: https://eel.is/c++draft/expr.cond#4
источник

K

Kelbon in pro.cxx
но если по таким правилам всё делать получится много двусмысленных написаний, потому наверное и не делают
источник

АР

Андрей Руссков... in pro.cxx
приведений может быть очень много, а по наследникам быстро пробежаться
источник

K

Kelbon in pro.cxx
ну тут сразу вопрос, может к void* привести?
источник

АР

Андрей Руссков... in pro.cxx
я понимаю, вопрос в том, почему бы в стандарте не описать такое приведение
источник

SS

Sergey Sobolev in pro.cxx
int a = 5;
const int &ref = true ? a : 2;
a = 6;
cout << ref << endl;

с ним и так хватает двусмысленностей)
источник

ПК

Побитый Кирпич... in pro.cxx
Почему между C* и B* вообще должна быть какая то связь?
C* приводится к A*? Да
B* приводится к A*? Да

Всё
источник

АР

Андрей Руссков... in pro.cxx
ты удивлен тому, что константная ссылка на неконстатное поле может существовать?
источник

SS

Sergey Sobolev in pro.cxx
когда-то я удивился, что ответ тут 5
источник

SS

Sergey Sobolev in pro.cxx
а потом разобрался и все стало логичным, но сходу для меня это не было очевидным ни разу
источник

АР

Андрей Руссков... in pro.cxx
а почему ты удивился?
источник

АР

Андрей Руссков... in pro.cxx
хотя помню в паскале была такая же хрень с тем, напишешь ты int i или var int i в объявлении процедур
источник