The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Rust 1.57"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Выпуск языка программирования Rust 1.57" +/
Сообщение от Ordu (ok), 03-Дек-21, 21:52 
> Пятница. Вечер.. Наверное поэтому мы не понимаем друг друга.
> Что в С, что в C++ облом на стадии компиляции организовывается через
> static_assert()

А, да, я проглядел. Но это не растовый подход. Заводить второй assert, когда можно не заводить? Зачем?

> Размер типа по указателю это банальный sizeof(*ptr), если ptr не на void

А, ну да, можно проще.

> я НЕ понимаю зачем в Русте сохранение при ассерте в переменную. Вернее,
> понимаю это как хак над assert, который работает в рантайме. А,
> если сохранять в const, то сработает во время компиляции.

Это не хак. Если я пишу:

const KEYWORDS = {
    let mut keywords = HashMap::new();
    // populate keywords
    keywords
};

То блок кода будет выполнен в компайл-тайме, и хеш-табличка будет лежать на старте программы в _созданном_ виде в KEYWORDS. (Впрочем, конкретно этот пример, я подозреваю не сработает, потому что HashMap требует аллокаций памяти, и их статически выполнять не удастся, но есть phf, он может.).

Почему бы не использовать то же самое, для выполнение assert'а? Зачем заводить специальный assert, если язык и так позволяет вызывать существующий assert в компайл-тайме? Не, если _тебе_ это зачем-то надо, ты можешь написать свой собственный макрос static_assert, который будет работать так, как тебе хочется.

> Необдуманно я пообещал Прохожему не угорать на Рустом. Забейте. Это мой искромётный
> юмор

Слава богу. Я очень рад, что ты передумал. Мои усилия прошли не даром.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск языка программирования Rust 1.57, opennews, 02-Дек-21, 21:53  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру