Describe the bug
std::uninitialized_copy uses memmove instead of memcpy. This is a codegen issue. memcpy is faster as it is an intrinsic.
Command-line test case
C:\Temp>type repro.cpp
#include <iostream>
struct thirtytwo {
char bytes[32];
};
void f(thirtytwo& target, const thirtytwo& source) {
std::uninitialized_copy(std::begin(source.bytes), std::end(source.bytes), std::begin(target.bytes));
}
Expected behavior
memcpy
Additional context
Discussed in MSVC STL discord server in #stl