3 ms·
Yes, it's completely safe and its rust equivalent is let x = vec![1, 2, 3]; process(std::mem::replace(&mut x, Vec::new())); x.push(4); https://doc
by marcianx 7y ago
Yes, it's completely safe and its rust equivalent is
let x = vec![1, 2, 3];
process(std::mem::replace(&mut x, Vec::new()));
x.push(4);
https://doc.rust-lang.org/std/mem/fn.replace.html https://doc.rust-lang.org/std/mem/fn.replace.html
- khuey 7y agoThere's no guarantee that std::move moves elements out of x. (and thus no guarantee that it's equivalent to a Rust mem::replace with a new Vec) The only requirement the C++ standard imposes is that the vector is left in a "valid but unspecified state".