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']"); +}