57 template <
typename CharT,
typename OutputIt>
static auto do_format(OutputIt& out,
const T& value)
59 if constexpr (std::is_same_v<CharT, wchar_t>)
61 return std::format_to(out, L
"{}", Converter{}(value));
65 return std::format_to(out,
"{}", Converter{}(value));
79 template <
typename ParseContext>
80 constexpr auto parse(ParseContext& context) {
return context.begin(); }
92 template <
typename FormatContext>
auto format(
const T& value, FormatContext& context)
const
95 typename std::iterator_traits<typename FormatContext::iterator>::value_type;
128 template <
typename... FormatArgs>
129 static auto format(
const char* formats,
const FormatArgs&... args) -> std::string
131 return std::vformat(formats, std::make_format_args(args...));
141 template <
typename... FormatArgs>
142 static auto format(
const wchar_t* formats,
const FormatArgs&... args) -> std::wstring
144 return std::vformat(formats, std::make_wformat_args(args...));
158 template <
typename OutputIt,
typename... FormatArgs>
159 static auto format_to(OutputIt out,
const char* formats,
const FormatArgs&... args)
162 return std::vformat_to(out, formats, std::make_format_args(args...));
174 template <
typename OutputIt,
typename... FormatArgs>
175 static auto format_to(OutputIt out,
const wchar_t* formats,
const FormatArgs&... args)
178 return std::vformat_to(out, formats, std::make_wformat_args(args...));