diff --git a/src/buffer.h b/src/buffer.h index 756c5e6b..96bf7cf7 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -43,7 +43,8 @@ template struct Buffer { // |src|. Returns number of bytes written. size_t write(const void *src, size_t count) { count = std::min(count, wleft()); - last = std::copy_n(static_cast(src), count, last); + auto p = static_cast(src); + last = std::copy(p, p + count, last); return count; } size_t write(size_t count) { diff --git a/src/memchunk.h b/src/memchunk.h index 64e386af..6df982cd 100644 --- a/src/memchunk.h +++ b/src/memchunk.h @@ -134,7 +134,7 @@ template struct Memchunks { for (;;) { auto n = std::min(static_cast(last - first), tail->left()); - tail->last = std::copy_n(first, n, tail->last); + tail->last = std::copy(first, first + n, tail->last); first += n; len += n; if (first == last) { @@ -165,7 +165,7 @@ template struct Memchunks { auto n = std::min(static_cast(last - first), m->len()); assert(m->len()); - first = std::copy_n(m->pos, n, first); + first = std::copy(m->pos, m->pos + n, first); m->pos += n; len -= n; if (m->len() > 0) {