3 ms·
No, I think the article is right. When a value goes out of scope, its drop method is called, which for Box values deallocates it. The trick is that if it is (p
by jmite 9y ago
No, I think the article is right. When a value goes out of scope, its drop method is called, which for Box values deallocates it.
The trick is that if it is (possibly) returned from a function, it is moved instead of dropped.
It's also important to distinguish Box from Rc. Both are heap values but have very different behavior.
- crispweed 9y agoThe text I quoted seemed to suggest that the reference going out of scope could trigger deallocation.
- Manishearth 9y agoWhich is true. The word "reference" is overloaded, it can be used to mean "anything pointery that's guaranteed to exist" too. Box<T> in this context is a reference. The post does kind of dance between definitions of "reference" a bit, but I think that's intentional.