3 ms·
In practice it just means a lot of sentinel values and unuseful potential accesses.
by nixpulvis 11mo ago
In practice it just means a lot of sentinel values and unuseful potential accesses.
- jandrewrogers 11mo agoNot really. In the vast majority of cases this is all elided. There is no cost, either in lines of code or runtime. When you are decoupling memory lifetimes from object lifetimes it is pretty explicit. It isn't like this sneaks into your code on its own. You have to manage the implications of it yourself.
- nixpulvis 11mo agoIt's not about cost of correct code, it's about accidental wrong code.
- jandrewrogers 11mo agoThat’s really not a thing. By default it is correct, you have to go out of your way to make it incorrect.
- nixpulvis 11mo agoIt's actually really easy... std::vector<int> a = {1,2,3}; // Added this without thinking about future uses of a. std::vector<int> b = std::move(a); use_vec(b); // ... use_vec(a);