From 4a8e2949bb8d803a7607b62b632ec6d8669b7995 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 25 Aug 2022 17:28:22 -0700 Subject: [PATCH] Fix formatting of ranges of code unit types Thanks Nicole Mazzuca. --- include/fmt/ranges.h | 6 +++--- test/ranges-test.cc | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/fmt/ranges.h b/include/fmt/ranges.h index 9e36c9a2..dea7d60d 100644 --- a/include/fmt/ranges.h +++ b/include/fmt/ranges.h @@ -270,8 +270,8 @@ template using uncvref_type = remove_cvref_t>; template -using uncvref_first_type = remove_cvref_t< - decltype(std::declval>().first)>; +using uncvref_first_type = + remove_cvref_t>().first)>; template using uncvref_second_type = remove_cvref_t< @@ -377,7 +377,7 @@ template struct is_range { static constexpr const bool value = detail::is_range_::value && !detail::is_std_string_like::value && !std::is_convertible>::value && - !std::is_constructible, T>::value; + !std::is_convertible>::value; }; namespace detail { diff --git a/test/ranges-test.cc b/test/ranges-test.cc index 80931aa4..3221e2ed 100644 --- a/test/ranges-test.cc +++ b/test/ranges-test.cc @@ -418,3 +418,7 @@ TEST(ranges_test, range_of_range_of_mixed_const) { fmt_ref_view r{&v}; EXPECT_EQ(fmt::format("{}", r), "[[1, 2, 3], [4, 5]]"); } + +TEST(ranges_test, vector_char) { + EXPECT_EQ(fmt::format("{}", std::vector{'a', 'b'}), "['a', 'b']"); +}