diff --git a/include/mp/type-char.h b/include/mp/type-char.h index b51ffeb1..19080b46 100644 --- a/include/mp/type-char.h +++ b/include/mp/type-char.h @@ -7,6 +7,9 @@ #include +#include +#include + namespace mp { template void CustomBuildField(TypeList, @@ -16,7 +19,7 @@ void CustomBuildField(TypeList, Output&& output) { auto result = output.init(size); - memcpy(result.begin(), value, size); + std::ranges::copy(value, result.begin()); } template @@ -27,8 +30,7 @@ decltype(auto) CustomReadField(TypeList, ReadDest&& read_dest) { return read_dest.update([&](auto& value) { - auto data = input.get(); - memcpy(value, data.begin(), size); + std::ranges::copy(input.get(), std::ranges::begin(value)); }); } } // namespace mp diff --git a/include/mp/type-data.h b/include/mp/type-data.h index 09c93df9..9110be91 100644 --- a/include/mp/type-data.h +++ b/include/mp/type-data.h @@ -32,9 +32,8 @@ template void CustomBuildField(TypeList, Priority<2>, InvokeContext& invoke_context, Value&& value, Output&& output) requires (std::is_same_v && IsByteSpan) { - auto data = std::span{value}; - auto result = output.init(data.size()); - std::ranges::copy(data, result.begin()); + auto result = output.init(value.size()); + std::ranges::copy(value, result.begin()); } template diff --git a/include/mp/type-string.h b/include/mp/type-string.h index d4c3383b..a8275a39 100644 --- a/include/mp/type-string.h +++ b/include/mp/type-string.h @@ -7,6 +7,9 @@ #include +#include +#include + namespace mp { template void CustomBuildField(TypeList, @@ -16,7 +19,7 @@ void CustomBuildField(TypeList, Output&& output) { auto result = output.init(value.size()); - memcpy(result.begin(), value.data(), value.size()); + std::ranges::copy(value, result.begin()); } template diff --git a/test/mp/test/listen_tests.cpp b/test/mp/test/listen_tests.cpp index 1506eaa4..24ca1652 100644 --- a/test/mp/test/listen_tests.cpp +++ b/test/mp/test/listen_tests.cpp @@ -225,7 +225,7 @@ KJ_TEST("ListenConnections enforces a local connection limit") { // With max-connections=1, the second socket can connect to the kernel // backlog, but ListenConnections should not accept or serve it until the - // first accepts clients disconnects. + // first accepted client disconnects. ListenSetup server(/*max_connections=*/1);