4 ms·
It's the same deal as creating a circular references using `std::shared_ptr` in C++.
by allo37 6y ago
It's the same deal as creating a circular references using `std::shared_ptr` in C++.
- hctaw 6y agoOwnership semantics in rust largely prevent circular references, so it's not the same deal
- allo37 6y agoSorry, I'm not a Rust pro, but from the docs about reference cycles linked above: > We can see that Rust allows memory leaks by using Rc<T> and RefCell<T>: it’s possible to create references where items refer to each other in a cycle. This creates memory leaks because the reference count of each item in the cycle will never reach 0, and the values will never be dropped. This sounds a lot like what happens when you create a circular reference with std::shared_ptr ?
- steveklabnik 6y agoYes, it is the same thing.
- hctaw 6y agoYes, but grep for `Rc::new()` in actual rust code bases compared to `shared_ptr` in C++. Interior mutability is cumbersome and not a natural pattern in practice.