The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Фронтэнд для языка Rust доведён до готовности для интеграции..."
Отправлено Аноним, 08-Дек-22 13:27 
> Использование unsafe контекста для данного примера как раз необходимо

Нет, оно нужно для того, чтобы у тебя появилась возможность заменить смарт-поинтеры raw-указателями.

Попробуй скомпилять вот это, вот тебе unsafe но со смарт-поинтерами:

fn main() {
    unsafe {
    let i = Box::new(5i32);
    println!("i = {i}");
    let _j = i;
    println!("i = {i}");
    }
}

Этот код не компилируется:

rustc tmp.rs
error[E0382]: borrow of moved value: `i`
--> tmp.rs:6:17
  |
3 |     let i = Box::new(5i32);
  |         - move occurs because `i` has type `Box<i32>`, which does not implement the `Copy` trait
4 |     println!("i = {i}");
5 |     let _j = i;
  |              - value moved here
6 |     println!("i = {i}");
  |                    ^ value borrowed here after move
  |

Попробуй найти способ получить в i невалидный указатель, разадресация которого приведёт к UB. Используй unsafe или не используй, как тебе покажется удобнее. Вот когда ты найдёшь такой способ, я смогу тебе на нём объяснить, чем смарт-поинтеры Rust'а лучше C++. А пока не найдёшь, тебе придётся оставаться в неведении.

> Кстати, почему вы вообще сравниваете С++ и Rust?

А ты зачем сравниваешь C++ и Rust? Ты тут самый активный участник обсуждения, и вдруг ты начинаешь всех обвинять, что они это обсуждение ведут. У тебя какая-то конкретная некогерентность в поведении наблюдается.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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