Fix regression in #3710 (#3968)

Regression introduced in 11f2f30
Already have a test for this, but needed to make __cpp_lib_ranges
smaller to enable it
This commit is contained in:
Justin Riddell 2024-05-23 20:39:11 +01:00 committed by GitHub
parent b81761068b
commit fc723fd6c7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 2 deletions

View File

@ -495,7 +495,8 @@ struct range_formatter<
for (; it != end; ++it) { for (; it != end; ++it) {
if (i > 0) out = detail::copy<Char>(separator_, out); if (i > 0) out = detail::copy<Char>(separator_, out);
ctx.advance_to(out); ctx.advance_to(out);
out = underlying_.format(mapper.map(*it), ctx); auto&& item = *it; // Need an lvalue
out = underlying_.format(mapper.map(item), ctx);
++i; ++i;
} }
out = detail::copy<Char>(closing_bracket_, out); out = detail::copy<Char>(closing_bracket_, out);

View File

@ -506,7 +506,7 @@ TEST(ranges_test, format_join_adl_begin_end) {
#endif // FMT_RANGES_TEST_ENABLE_JOIN #endif // FMT_RANGES_TEST_ENABLE_JOIN
#if defined(__cpp_lib_ranges) && __cpp_lib_ranges >= 202302L #if defined(__cpp_lib_ranges) && __cpp_lib_ranges >= 202207L
TEST(ranges_test, nested_ranges) { TEST(ranges_test, nested_ranges) {
auto l = std::list{1, 2, 3}; auto l = std::list{1, 2, 3};
auto r = std::views::iota(0, 3) | std::views::transform([&l](auto i) { auto r = std::views::iota(0, 3) | std::views::transform([&l](auto i) {