diff --git a/include/fmt/base.h b/include/fmt/base.h index 4d6a33bc51dbc..4b4476aca9f71 100644 --- a/include/fmt/base.h +++ b/include/fmt/base.h @@ -930,12 +930,9 @@ template class buffer { try_reserve(size_ + count); auto free_cap = capacity_ - size_; if (free_cap < count) count = free_cap; - if (std::is_same::value) { - memcpy(ptr_ + size_, begin, count * sizeof(T)); - } else { - T* out = ptr_ + size_; - for (size_t i = 0; i < count; ++i) out[i] = begin[i]; - } + // A loop is faster than memcpy on small sizes. + T* out = ptr_ + size_; + for (size_t i = 0; i < count; ++i) out[i] = begin[i]; size_ += count; begin += count; }