Re:My favorite Rust function
by edflsafoiewq on Saturday October 12, 2019 @08:20PM
(#21237319)
The equivalent to drop in C++ would be
edit: fixed.
[ Parent
| on HN ]
This is not correct; moves must leave the value in a valid state, because its destructor will still run. The correct version is actually the same as Rust's:
template <class T>
void drop(T) {}
(Moving into a local in `drop(T&&)` also works.)
Re:My favorite Rust function
by edflsafoiewq on Saturday October 12, 2019 @09:02PM
(#21237515)
You're correct, sorry (I did have that at one point...). But the equivalent of Rust's pass-by-moving is to pass an r-value reference. Passing a const reference to drop is certainly an error and should be disallowed.