diff --git a/include/fmt/base.h b/include/fmt/base.h index b83303fa..f2e2b109 100644 --- a/include/fmt/base.h +++ b/include/fmt/base.h @@ -2810,8 +2810,11 @@ template class fstring { template using format_string = typename fstring::t; template -using is_formattable = bool_constant< - !std::is_base_of>::value>; +using is_formattable = bool_constant::value, detail::unformattable, T>, + Char>>::value>; #ifdef __cpp_concepts template diff --git a/test/base-test.cc b/test/base-test.cc index 96dbd9d7..a74db5d8 100644 --- a/test/base-test.cc +++ b/test/base-test.cc @@ -624,6 +624,7 @@ FMT_END_NAMESPACE enum class unformattable_scoped_enum {}; TEST(base_test, is_formattable) { + EXPECT_FALSE(fmt::is_formattable::value); EXPECT_FALSE(fmt::is_formattable::value); #ifdef __cpp_char8_t EXPECT_FALSE(fmt::is_formattable::value);