Replace uninitialized_copy with memmove (#242)

because the memory areas may overlap.
This commit is contained in:
vitaut 2015-12-06 07:44:07 -08:00
parent e7f4566dd4
commit 98c1f76f24

View File

@ -2773,7 +2773,7 @@ void BasicWriter<Char>::write_double(
spec.width() > static_cast<unsigned>(n)) {
width = spec.width();
CharPtr p = grow_buffer(width);
std::uninitialized_copy(p, p + n, p + (width - n) / 2);
std::memmove(p + (width - n) / 2, p, n * sizeof(Char));
fill_padding(p, spec.width(), n, fill);
return;
}