Как стать автором
Обновить

Комментарии 11

Еее, константные дженерики! Теперь можно не колхозить доступ к многомерным массивам.

дженерики становятся все мощнее, следующий шаг — HKT?

Я проголосую за поля в типажах. Это уберет мне большую часть ансейфов в проекте.

Хм. А для чего там unsafe? Это же можно реализовать с помощью методов get_field(&self) -> &Field, get_field_mut(&mut self) -> &mut Field.


Для того, чтобы заимствовать отдельные поля без блокировки всего объекта? По-моему, с текущей моделью stacked borrows это — UB. MIRI на такой код не ругается?

Для наследования. В данный момент оно реализовано вложенными структурами, как в си.

Вы так и не сказали, для чего вам наследование и чем не подходят геттеры-сеттеры

Мне нужен вид зависимости сущности "is-a", вместо "has-a". Тогда я могу обобщать сущности разных конечных типов в контейнеры. При этом мне нужно хранить состояние, общее для всех типов, а таскать его по конечным типам, вызывая через геттер в типаже, можно, но костыльно.

С передачей размера массива в шаблоны удивили. Неужели такой простой фигни до сих пор не было???
Впрочем, чего тут удивляться — в С++ вещественные и строковые параметры шаблонов сделали только в С++20 (т.е. спустя 35 лет после создания языка), да и то не до конца.

В Rust безопасное подмножество языка не содержит UB по определению. Соответственно все возможности языка должны этому соответствовать.


Поэтому задача не в том, чтобы влепить фичу и объявить все «неправильные» способы применения UB, а в том, чтобы добавлять фичи в стабильное подмножество языка, которое будет консистентным и непротиворечивым и не приведет к нарушению внутренних инвариантов.


В статье идет речь о стабилизации а не о реализации. В системе типов языка есть и специализация, и отдельные элементы высших порядков, но они не доступны в стабильном подмножестве.

Справедливости ради, стоит заметить, что реализация фундаметнальных целочисленных параметров шаблонов куда проще, чем поддержка строковых и более сложных параметров. Но почему-то до первого Rust дошёл только сейчас. Возможно, так получилось, потому, что изначально не подумали о необходимости такого.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории