Size: a a a

2021 March 07

RB

Roman Blog in rust_offtopic
а вот в крестах будет
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
то что иногда констрейнты слишком жесткие (требуется Num хотя хватило бы Add) - ну разве что из минусов, но это минорно
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
нет, не будет и это показано выше
это не фундаментальная проблема а просто не реализован хинт для конкретной ошибки
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
это не фундаментальная проблема а просто не реализован хинт для конкретной ошибки
Нету там никакого хинта. И нормальный  язык работает не так, чтобы для каждой ошибки костылять. И чтобы тебе получить там ошибку - тебе как раз таки и нужно добавлять трейс, т.е. рисовать все те же 20 уровней вложенности
источник

RB

Roman Blog in rust_offtopic
единственная разница здесь в том, что 20 у тебя не будет. Не не потому, что "круто", а потому что это будет настолько нечитаемое и ненаписуемое дерьмо, что его никто написать не может
источник

RB

Roman Blog in rust_offtopic
и вот как раз таки проблема num vs add следует из этого. У скриптухи есть фундаментальное противоречие. У тебя всегда трейдофф между общим интерфейсом и частным
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
единственная разница здесь в том, что 20 у тебя не будет. Не не потому, что "круто", а потому что это будет настолько нечитаемое и ненаписуемое дерьмо, что его никто написать не может
неописуемое дерьмо обычно эпитет для темплейт ошибок
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
когда для каких-то чужих типов че-то не смогло раскрыться
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и иди кури бамбук
источник

RB

Roman Blog in rust_offtopic
если ты используешь более общий - ты получаешь лишние ограничения, что ограничивает обобщённость. Если используешь более частный - ты обязан все тысячи эти частных случаев писать руками
источник

C

Crush_my_love in rust_offtopic
Αλεχ Zhukovsky
неописуемое дерьмо обычно эпитет для темплейт ошибок
+. Очень сложно дебажить бывает.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Roman Blog
если ты используешь более общий - ты получаешь лишние ограничения, что ограничивает обобщённость. Если используешь более частный - ты обязан все тысячи эти частных случаев писать руками
что поделать, оказывается это лучше чем обе крайности
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
когда для каких-то чужих типов че-то не смогло раскрыться
никогда и ни в какой вселенной никакой ошибка в темплейтах не может быть в чужих типах
источник

RB

Roman Blog in rust_offtopic
С++ так не работает
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
что поделать, оказывается это лучше чем обе крайности
в С++ нет крайности, в с++ такой проблемы нет. Интерфейсы наиболее частные и выводятся автоматически
источник

RB

Roman Blog in rust_offtopic
т.е. ты получаешь тоже, как если бы ты каждую функцию засунул в интерфейс, но при этом не пишешь не просто киллометры лапши, а не пишешь вообще ничего
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
окей, что насчет контракта функции? Как мне не проверяя рекурсивно все раскрытия темплейтов понять какой интерфейс у функции?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
напомню что в мире где у тебя много библиотек и семвер ты должен понимать какие изменения ломающие а какие нет
источник

RB

Roman Blog in rust_offtopic
Αλεχ Zhukovsky
окей, что насчет контракта функции? Как мне не проверяя рекурсивно все раскрытия темплейтов понять какой интерфейс у функции?
Ты ничего и не поймёшь итак. Вся куллстори с "Контрактами" - это мифилогия. Ты не покажешь ни одного примера, кроме хеловорлда мономорфного уровня "у меня тут int". В реальности у тебя будет лапша из констрейтов, которые непонятно что делают и их будут десятки штук. И подобный интерфейс дерьма уже не читаемый по определению
источник

RB

Roman Blog in rust_offtopic
и ты будешь до посинения компилировать этот код, как это делают все. Никогда, кроме примитивных случаев, ты не будешь заранее знать что тебе нужно описать у своего типа, чтобы соответствовать ограничениям
источник