Open apolukhin opened 3 years ago
yndx-antoshkka, 4 сентября 2018, 15:01 У такой перегрузки будут те же неприятные последствия, что и при перегрузке операторов && ||. А именно - все выражения на вход будут считаться сразу, а не лениво. В итоге код с перегруженным оператором ?: ,удет приводить к краху приложения
auto* ptr = foo();
return ptr ? ptr->bar() : fallback();
В примере выше, ptr->bar() будет всегда выполняться.
Игорь Шаповал, 4 сентября 2018, 16:14 Я прочел, что уже предлагают в стандарт в виде проповзола
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0917r1.pdf
yndx-antoshkka Что можете сказать? Есть шанс, что добавят в стандарт?
yndx-antoshkka, 4 сентября 2018, 17:11 Игорь Шаповал, в бумаге предлагают способы борьбы с вычислением обеих результатов выражения... Но я всё равно не в восторге от предложения.
Посмотрим, что скажет комитет по этому поводу :)
Игорь Шаповал, 5 сентября 2018, 9:19 Этот автор если я не ошибаюсь добавил simd классы в Parallelizm TS 2. Я думаю он сможет довести дело до конца.
Идея прорабатывается в https://wg21.link/p0917
Перенос предложения: голоса +2, -6 Автор идеи: Игорь Шаповал
Разрешить перегрузку оператора ?:
В языке С++ можно перегружать операторы, кроме операторов ?: , :: , . Операторы :: , . понятно почему нельзя перегружать. А вот почему оператор ?: нельзя перегружать не понятно. Предлагаю добавить в стандарт перегрузку оператора ?:
Можно было вот так: