Size: a a a

2020 August 05

p

polunin.ai in rust_offtopic
Kai Ren
Поинт в том, что не вся альтернативщина - обязательно плоскоземельщина
Практически всегда
источник

AZ

Alex Zhukovsky in rust_offtopic
Alexander Krivitskiy
Так куда лучше уже? У тебя в шаблоне написано, что у типа T должен быть метод ToString(). Ты же не прописывешь что ToString должен быть из какого-то конкретного интерфейса. Тебе компилятор говорит, что у int нет такого метода. Чего ещё надо?
правильный вопрос был: если шаблоны так гениальны то зачем нужны концепты7
источник

p

polunin.ai in rust_offtopic
Alexander Krivitskiy
Так куда лучше уже? У тебя в шаблоне написано, что у типа T должен быть метод ToString(). Ты же не прописывешь что ToString должен быть из какого-то конкретного интерфейса. Тебе компилятор говорит, что у int нет такого метода. Чего ещё надо?
Если бы так было!
источник

p

polunin.ai in rust_offtopic
И если бы оно проверялось до мономорфизации
источник

AZ

Alex Zhukovsky in rust_offtopic
Alexander Krivitskiy
Так куда лучше уже? У тебя в шаблоне написано, что у типа T должен быть метод ToString(). Ты же не прописывешь что ToString должен быть из какого-то конкретного интерфейса. Тебе компилятор говорит, что у int нет такого метода. Чего ещё надо?
обычно ToString не висит в воздухе а приходит из какого-то интерфейса. Поэтому я и говорю, что за утинуют ипизацию развели. "Мне не важно откуда этот метод возьмется лишь бы у него была такая сигнатура"
источник

KR

Kai Ren in rust_offtopic
Alex Zhukovsky
правильный вопрос был: если шаблоны так гениальны то зачем нужны концепты7
кек, заставляешь меня быть не "адвокатом дьявола", но "адвокатом царя"
источник

KR

Kai Ren in rust_offtopic
ща форвардну его обьяснения
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
обычно ToString не висит в воздухе а приходит из какого-то интерфейса. Поэтому я и говорю, что за утинуют ипизацию развели. "Мне не важно откуда этот метод возьмется лишь бы у него была такая сигнатура"
Ну это норм, если оно проверяется до мономорфизации
источник

p

polunin.ai in rust_offtopic
И выражается в сигнатуре
источник

AK

Alexander Krivitskiy in rust_offtopic
Alex Zhukovsky
правильный вопрос был: если шаблоны так гениальны то зачем нужны концепты7
Раньше баунды гордились static_assertами и макросами, теперь у них есть нативный саппорт в языке. Как try! и ? в расте. Правда тут try! все сами велосипедят.
источник

KR

Kai Ren in rust_offtopic
Переслано от Kai Ren
Чем, кстати концепты концептуально (лёль) отличаются от трейт баундов?
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
ну первое и фундаментальное отличие - это ограничения. Именно ограничения. Т.е. они, условно, пропускают только типы с необходимыми свойствами. Но остальные свойства не теряются
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
inmap auto x = b{};
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
здесь тип x будет b
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
а не inmap
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
inmap<b>, либо ещё какая херня
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
если говорить о том, чем requires отличается от интерфейсом дерьма - всё очень просто. Интерфейсы не могут существовать в полиморфном коде
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
интерфейс он определяет сигнатуру, которая потом реализуется. Здесь всё наоборот. Сигнатур нет, потому как их попросту невозможно написать и это не имеет смысла.

А проверка производится на уровне - сформирован ли код, либо нет. Ну примерно как во всяких говноидрисах.  Сам факт компиляции используется как критерий соответствия
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
если проще - они декларативные. Мы пишем то, какой код должен работать.
источник