On 2/1/2017 9:28 AM, Michael Howell wrote:
unsafe fn copy_nonoverlapping_ref<T>(src: &T, dest: &mut T, len: usize) { std::ptr::copy_nonoverlapping(src, dest, len) }Again, it doesn't guarantee no side effects, it may guarantee that src isn't mutated, it does guarantee that they aren't stored away somewhere, and it guarantees that src and dest don't overlap.
What part of the signature guarantees non-overlap?
It's still unsafe, because it doesn't do anything about len being possibly out of bounds, and I left out the Copy bound for the sake of flexibility.
Being marked 'unsafe' also includes the ability of the function to save the pointers in global variables.
