Size: a a a

2020 August 07

Ct

Casual tears in rust_offtopic
Constantine Drozdov
Разработчик получит одинаковый результат (описан в стандарте)
Разный. Вот условный хаскель таки выводит все требования.
Код
add x y = x + y
foo = add "bar" 3

Выдает
  * No instance for (Num [Char]) arising from a use of `add'
   * In the expression: add "bar" 3
     In an equation for `foo': foo = add "bar" 3

Плюсовый же компилятор срётся внутренностями реализации на такие случаи.
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
Макросы это все, что раскрывается до компиляции (трансляции)
Только твое определение хреновое потому что то что происходит после тайпчека никогда не фейлится, а то что происходит до тайпчека может зафейлитсч. Ты связал два несовместимых этапов, один из которых может вовсе отсутствовать.
источник

p

polunin.ai in rust_offtopic
Хотя
источник

CD

Constantine Drozdov in rust_offtopic
Casual tears
Разный. Вот условный хаскель таки выводит все требования.
Код
add x y = x + y
foo = add "bar" 3

Выдает
  * No instance for (Num [Char]) arising from a use of `add'
   * In the expression: add "bar" 3
     In an equation for `foo': foo = add "bar" 3

Плюсовый же компилятор срётся внутренностями реализации на такие случаи.
Плюсовый компилятор выдает цепочку шаблонных развертываний. Если вы будете программировать на С++, вы будете хвалить его, что он так делает.
источник

p

polunin.ai in rust_offtopic
Мономорфизации насколько я помню происходит во время трансляции в MIR но могу ошибаться
источник

p

polunin.ai in rust_offtopic
Так что трейты не макросы по твоему определению если я правильно помню
источник

Ct

Casual tears in rust_offtopic
Constantine Drozdov
Плюсовый компилятор выдает цепочку шаблонных развертываний. Если вы будете программировать на С++, вы будете хвалить его, что он так делает.
Называй как хочешь, но суть от этого не меняется. Юзерам библиоткеки не должны сыпаться детали имплементации в ошибках.
источник

CD

Constantine Drozdov in rust_offtopic
Трейты не макросы по моему определению
источник

p

polunin.ai in rust_offtopic
polunin.ai
Только твое определение хреновое потому что то что происходит после тайпчека никогда не фейлится, а то что происходит до тайпчека может зафейлитсч. Ты связал два несовместимых этапов, один из которых может вовсе отсутствовать.
А если неправильно, то это все равно действует
источник

CD

Constantine Drozdov in rust_offtopic
Casual tears
Называй как хочешь, но суть от этого не меняется. Юзерам библиоткеки не должны сыпаться детали имплементации в ошибках.
Это заявление не базируется на опыте программирования на С++
источник

Ct

Casual tears in rust_offtopic
Constantine Drozdov
Это заявление не базируется на опыте программирования на С++
"Сначала добейся", приехали.
источник

Ct

Casual tears in rust_offtopic
Если всё так замечательно было, то концепты на кой черт вводили?
источник

CD

Constantine Drozdov in rust_offtopic
Casual tears
"Сначала добейся", приехали.
Нет. Но я вам не указываю, как надо проектировать Rust, потому что очень мало на нем программировал. Вы можете спросить меня, почему С++ компилятор поступает именно так, и я вам отвечу, что вот лично мне достаточно просто по этой таблице понять, что происходит.
источник

Ct

Casual tears in rust_offtopic
Чтобы перегрузки было удобнее диспатчить? Уже sfinae есть. Да и если допустим так, то почему одна из самых рекламируемых фич концептов - нормальные ошибки при компиляции?
источник

CD

Constantine Drozdov in rust_offtopic
Casual tears
Если всё так замечательно было, то концепты на кой черт вводили?
Потому что концепты сокращают код
источник

NL

Nick Linker in rust_offtopic
Constantine Drozdov
А, я не форвардил царя, да и не самый большой его фанат, я сам за себя говорю
Упс, официально признаю ошибку. Прости меня, я ошибся в установлении пользователя, это Танк был.
Надеюсь, ты не в обиде.
источник

CD

Constantine Drozdov in rust_offtopic
Casual tears
Чтобы перегрузки было удобнее диспатчить? Уже sfinae есть. Да и если допустим так, то почему одна из самых рекламируемых фич концептов - нормальные ошибки при компиляции?
А вот свинью писать очень неприятно, а дебагать вообще невозможно
источник

CD

Constantine Drozdov in rust_offtopic
Nick Linker
Упс, официально признаю ошибку. Прости меня, я ошибся в установлении пользователя, это Танк был.
Надеюсь, ты не в обиде.
Без проблем
источник

Т8

Т-34 85 in rust_offtopic
Casual tears
Называй как хочешь, но суть от этого не меняется. Юзерам библиоткеки не должны сыпаться детали имплементации в ошибках.
это действительно проблема?
источник

Ct

Casual tears in rust_offtopic
Т-34 85
это действительно проблема?
Конечно?
источник