From 486e7ba579a2c677772d004ecd0311142ba481be Mon Sep 17 00:00:00 2001 From: Oleksandr Koval <37271580+OleksandrKvl@users.noreply.github.com> Date: Fri, 3 Oct 2025 14:40:44 +0300 Subject: [PATCH] support `std::optional` holding cv-qualified types (#4562) Fixes #4561 --- include/fmt/std.h | 2 +- test/std-test.cc | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/fmt/std.h b/include/fmt/std.h index 945dee5b..e32d82f5 100644 --- a/include/fmt/std.h +++ b/include/fmt/std.h @@ -353,7 +353,7 @@ template struct formatter, Char, std::enable_if_t::value>> { private: - formatter underlying_; + formatter, Char> underlying_; static constexpr basic_string_view optional = detail::string_literal{}; diff --git a/test/std-test.cc b/test/std-test.cc index f5b4e7e8..4bd8abce 100644 --- a/test/std-test.cc +++ b/test/std-test.cc @@ -145,6 +145,7 @@ TEST(std_test, optional) { EXPECT_FALSE((fmt::is_formattable::value)); EXPECT_FALSE((fmt::is_formattable>::value)); EXPECT_TRUE((fmt::is_formattable>::value)); + EXPECT_TRUE((fmt::is_formattable>::value)); #endif }