4 ms·
C++ doesn't have the borrow checker of Rust. Isn't that what made Rust famous? (Your literal question is a straw man: no, those aren't different, but Rust offe
by tommiegannert 4y ago
C++ doesn't have the borrow checker of Rust. Isn't that what made Rust famous?
(Your literal question is a straw man: no, those aren't different, but Rust offers more.)
- suremarc 4y agoI don’t really understand what the borrow checker has to do with the automatic/manual memory management dichotomy.
- pornel 4y agoEven though ownership and borrowing are theoretically orthogonal, they're both needed to make a complete safe system (the context was about managing memory for safety, not merely having a syntax sugar for malloc/free.) Unique ownership prevents leaks and double-free, and borrow checking prevents use-after-free. Borrowing is necessary to temporarily relax the exclusivity of uniquely-owned objects and access their interior. Access to interior of a unique_ptr (and shared_ptr) decays it to a reference or a bare pointer that is not managed by the smart pointer any more, and can be left dangling. Borrow checker eliminates the manual "be careful not to leave dangling pointers" part.