Size: a a a

2020 June 29

AK

Anastasia Kazakova in pro.cxx
Привет всем!)
источник

АМ

Андрій Макарчук... in pro.cxx
Anastasia Kazakova
Привет всем!)
Привет
источник

AT

Anatoly Tomilov in pro.cxx
Технически в C++ можно эмулировать перегрузку по возвращаемому значению, а есть ли какие-то теоретические запреты на таковую, как часть языка? Вот я хочу сделать factory method make() для разных продуктов, для этого надо класс специализировать и т.п. Как-то неудобно. Вот бы сразу наделать этих методов, различающихся только возвращаемым значением.
источник

ОД

Олег Давыдов... in pro.cxx
auto value = make ();
источник

К

Константин in pro.cxx
Олег Давыдов
auto value = make ();
там вопрос как make определить) не?
источник

N

Neargye in pro.cxx
Anatoly Tomilov
Технически в C++ можно эмулировать перегрузку по возвращаемому значению, а есть ли какие-то теоретические запреты на таковую, как часть языка? Вот я хочу сделать factory method make() для разных продуктов, для этого надо класс специализировать и т.п. Как-то неудобно. Вот бы сразу наделать этих методов, различающихся только возвращаемым значением.
make<RetType> - просто и надежно
источник

AT

Anatoly Tomilov in pro.cxx
Neargye
make<RetType> - просто и надежно
да ну
источник

AT

Anatoly Tomilov in pro.cxx
Олег Давыдов
auto value = make ();
запрещено
источник

AD

Andrey Davydov in pro.cxx
Anatoly Tomilov
Технически в C++ можно эмулировать перегрузку по возвращаемому значению, а есть ли какие-то теоретические запреты на таковую, как часть языка? Вот я хочу сделать factory method make() для разных продуктов, для этого надо класс специализировать и т.п. Как-то неудобно. Вот бы сразу наделать этих методов, различающихся только возвращаемым значением.
call expression должен резолвиться независимо от того, как используется
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Кажется, автовывод параметров шаблона из результата лучше, чем перегрузка по возвращаемому типу. Хотя я такую фичу тоже не предлагаю, там есть тонкости.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Anatoly Tomilov
Технически в C++ можно эмулировать перегрузку по возвращаемому значению, а есть ли какие-то теоретические запреты на таковую, как часть языка? Вот я хочу сделать factory method make() для разных продуктов, для этого надо класс специализировать и т.п. Как-то неудобно. Вот бы сразу наделать этих методов, различающихся только возвращаемым значением.
Вот бы эту хрент просто в правила прописать, что
T some = f()
Эквивалентно
auto some = f<T>()
источник

v

vehlwn in pro.cxx
Anatoly Tomilov
Технически в C++ можно эмулировать перегрузку по возвращаемому значению, а есть ли какие-то теоретические запреты на таковую, как часть языка? Вот я хочу сделать factory method make() для разных продуктов, для этого надо класс специализировать и т.п. Как-то неудобно. Вот бы сразу наделать этих методов, различающихся только возвращаемым значением.
Да в параграфе про перегрузку. Там же написано, что тупедефы не создают новые типы и объявлять две функции, параметры которых отличаются наличием псевдонима и наличием тупедефируемого типа, невалидно.
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Anatoly Tomilov
запрещено
std::cout << make(); ? А если вдруг там реально всего один вариант оператора разрешать? Имхо слишком часто будет стрелять.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Alex Ф-ф-фэils!🌠︙
Вот бы эту хрент просто в правила прописать, что
T some = f()
Эквивалентно
auto some = f<T>()
@antoshkka , Andrey Davydov , как вам идея?
источник

АК

Александр Караев... in pro.cxx
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
А если это не шаблон? А если шаблон, но не от того, что ожидается?
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Спасибо, не заметил, извиняюсь
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Тут скорее автовывод через возвращаемый тип разрешить: если

t<typename T>
T foo();

в контексте, где запрашиваемый тип безусловно выводится сам (формализировать надо), то можно выводить.
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Дмитрий ⬡ Лапшин
Тут скорее автовывод через возвращаемый тип разрешить: если

t<typename T>
T foo();

в контексте, где запрашиваемый тип безусловно выводится сам (формализировать надо), то можно выводить.
+
источник

ДЛ

Дмитрий ⬡ Лапшин... in pro.cxx
Но я не готов предлагать, как в правила плюсов переписывать это условие чтобы не сделать это место ещё сложнее, а код вида

bar(foo())

был бы или вообще запрещён, или разрешён только если по числу аргументов/другим аргументам есть ровно 1 вариант. Но вы же потом захотите если и не один вариант...
источник