fix: support optional<T> with format_as(T) (#3713)

Formatting a std::optional<T> where T had a custom format_as(T) function failed to compile with clang,
due to set_debug_format being hidden by private inheritance. This fix makes the function available through a using clause.
This commit is contained in:
Ole Bøe
2023-11-17 00:02:33 +01:00
committed by GitHub
parent 649fe0fc8b
commit 864a8b5f38
2 changed files with 31 additions and 0 deletions

View File

@@ -4054,6 +4054,7 @@ struct formatter<T, Char, enable_if_t<detail::has_format_as<T>::value>>
: private formatter<detail::format_as_t<T>, Char> {
using base = formatter<detail::format_as_t<T>, Char>;
using base::parse;
using base::set_debug_format;
template <typename FormatContext>
auto format(const T& value, FormatContext& ctx) const -> decltype(ctx.out()) {