Превосходство Rust над C++ в одном примере
От: Shmj Ниоткуда  
Дата: 13.09.23 04:53
Оценка: +2 -2 :))) :)
В продолжение темы
Автор: Shmj
Дата: 12.09.23
:

Немножко было времени на выходных и по вечерам — почитал учебник Rust. И придумал для таких же как я простой и наглядный пример, который демонстрирует суть владения — зачем оно вообще нужно и в чем смысл. Вот пример:

#include <iostream>

struct Class1 { const int i1 = 42; };

void fun1(std::unique_ptr<Class1> smart_ptr){}

int main()
{
    auto smart_ptr1 = std::make_unique<Class1>();
    fun1(std::move(smart_ptr1));

    std::cout << smart_ptr1->i1 << std::endl;
}


Компилятор С++ это принимает и не пикнет — максимум варнинг выдаст, и то не всегда. А ведь это 100% ошибка без вариантов. А в Rust право владения — суть концепция самого языка.

Почему я начал почитывать Rust? Один чел. сказал что разобравшись с Rust — лучше начинаешь понимать другие языки, в частности тот же C++. Ведь в С++ умные указатели ведь тоже завязаны на владение, однако нет парадигмы в самом языке, которая способна выявлять подобные ошибки.

По сути Rust — это просто более строгий язык, который ошибки заменит на этапе компиляции. Примерно как если сравнить C++ и Python — так можно сравнить Rust и C++ — первый более строгий, второй менее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.