Nardis
Ниясно чего у них еул делает в репе сорцов
оно там в папке dist, заготовочка :)
andrei
Го обсуждают
andrei
втф
Vladimir
втф
Это норм в этом чате
Евгений
Го обсуждают
Это чатик про го. Хейтерский чатик, но про го.
分解物質
do you have X? we actually have rfc for X
Evgenii
do you have X? we actually have rfc for X
имхо это надо запинить
Sergey
Кто-нибудь знает, есть ли какая-нибудь возможность реализовать дженерик функцию для всех типов, кроме одного конкретного типа?
Sergey
Для того типа, я хотел бы сделать другую реализацию
Sergey
Или заимпелемнить дженерик для типа, который НЕ реализует определённый трейт?
Anonymous
можно с optin_builtin_traits, но они вроде планируют убрать такое поведение
Anonymous
🤔
Vladimir
Для того типа, я хотел бы сделать другую реализацию
Имхо это похоже на специализацию, она вроде как тоже не стейбл
Anonymous
Vladimir
Может в честь специализации и хотят убрать, ибо для большинства задач специализация больше подходит. Но реализация for .. все равно должна быть для разных Sync Send. Обе было бы вообще крутяк👍
Anonymous
а что за специализация?
Anonymous
ооо
Сережа
в шаблонах с++ возможно специализировать шаблон для конкретного класса, и при использовании шаблона с этим классом - компилятор будет подставлять специализацию для этого класса, а не код, сгенерированный на основе общего шаблонного класса
Сережа
так раньше факториал в компайл тайме считали, пока constexpr не завезли
Сережа
http://ru.cppreference.com/w/cpp/language/template_specialization
Сережа
и даже так
Сережа
http://en.cppreference.com/w/cpp/language/partial_specialization
Vladimir
Ну у с++ немного по-другому работает, там же нельзя для существующих типов реализовать какой-то интерфейс?
Сережа
не совсем понял, без изменения существующего типа (наследоваться нельзя)?
Сережа
я думал что в расте и с++ шаблоны делают одно и то же - кодогенерацию
Filipp
В расте нет шаблонов, то, что выглядит как шаблоны <T> - это что-то вроде параметризации типами. Динамическая диспетчеризация без угловых скобок делается
Filipp
А нет, с угловыми, их же надо в Box засунуть
Vladimir
А нет, с угловыми, их же надо в Box засунуть
или в обычную ссылку тогда без угловых х)
Alex
А нет, с угловыми, их же надо в Box засунуть
Box автоматически делает динамическую параметризацию?
Vladimir
и в угловых боксах будет не Т а Типаж, если уже на то пошло
Filipp
ну может T это типаж
Vladimir
Box автоматически делает динамическую параметризацию?
че такое динамическая параметризация, это что-то из жаваскрипта?
Vladimir
ну может T это типаж
тогда предыдущее <Т> используется в неправильном констексте
Vladimir
не совсем понял, без изменения существующего типа (наследоваться нельзя)?
Нет, нельзя. Я про это и говорю, что у с++ единственный способ расширения функционала, это наследования, то есть "сужение типов". В расте же, ты можешь реализовать типаж, даже для встроенных библиотечных типов (И даже для тех типов о которых ты вообще не знаешь). От того композиция может быть сложнее
Filipp
прикольно привязанные константы нельзя с трейт объектами использовать
Сережа
https://play.rust-lang.org/?gist=97884d553177fb466b94f8c63eeaeba9&version=stable как это работает?
Filipp
https://play.rust-lang.org/?gist=37def5a44d042cee5bcea77e18d8d752&version=stable или я все-таки что-то неправильно делаю?
Filipp
https://play.rust-lang.org/?gist=97884d553177fb466b94f8c63eeaeba9&version=stable как это работает?
это мономорфизируется - скомпилируются две версии рендера, для квадрата и для круга
Сережа
компилятор мне мономорфизирует функцию render для Circle и Square?
Сережа
понятно, я думал, что будет динамически через vtable как-то
Сережа
спасибо
Filipp
https://play.rust-lang.org/?gist=89462ff7a583d2981ebe23a84917c584&version=stable вот так через vtable
Vladimir
как ты вообще себе представляешь трейбобъект с константами?
Filipp
ну в vtable ссылки на них
Vladimir
ты путаешь константы с статиками
Filipp
действительно
Filipp
ну только привязанных статиков нет
Vladimir
ну никто и не обещал х)
Vladimir
но вообще я согласен, статики бы прикольнее смотрелись
Filipp
ну ладно всегда можно сделать функцию, которая статик возвращает
Vladimir
Ну это не то, там будет лишний вызов!!!
Filipp
это да. и не заинлайнить
Filipp
понятно, я думал, что будет динамически через vtable как-то
https://doc.rust-lang.org/book/first-edition/trait-objects.html вот дока про динамическую диспетчеризацию
Сережа
спасибо
Маjко
Для того типа, я хотел бы сделать другую реализацию
Специализация, но она пока только в nightly https://aturon.github.io/blog/2015/09/18/reuse/
vladislav
А шаблоны в раст планируется завозить?
Cuno
Смотря что ты под шаблонами подразумеваешь
Filipp
скажи зачем тебе шаблоны мы расскажем почему они не нужны в расте
Filipp
обычно они заменяются макросами и генериками
պլհկ
на этих ваших генериках факториал можно посчитать?
Евгений
на этих ваших генериках факториал можно посчитать?
На system f можно, по-моему. Но в расте ток хиндли-милнер. Встаёт вопрос: когда завезут system f?
պլհկ
https://crates.io/crates/typenum
Маjко
Генерики тьюринг-комплит, при желании на них можно что угодно посчитать
Маjко
Но проще декоратор прихуярить
vladislav
Ну если тьюринг комплит то ое
vladislav
Ок
Anton
Тот сочный момень
Anton
Когда неделю писал заказ к дедлайну
Anton
И вот дедлайн позади
Anton
И ты открываешь свой проект на расте
Anton
Прекрасное чувство братцы
Anton
Alex
тот момент, когда вместо того чтобы закрыть фичу наоборот занимался ерундовым проектом (интересно же) но теперь опять надо возвращаться к фиче :(
Anton
Эхх
Anton
Я неделю на жс херню писал
Anton
Заебался
Anton
Просто конечно но объем большой