mirror of
https://github.com/fmtlib/fmt.git
synced 2025-12-15 18:18:27 +01:00
Fix handling of user-defined types in format_to (#793)
This commit is contained in:
@@ -1122,7 +1122,8 @@ class Answer {};
|
||||
FMT_BEGIN_NAMESPACE
|
||||
template <>
|
||||
struct formatter<Answer> : formatter<int> {
|
||||
auto format(Answer, fmt::format_context &ctx) -> decltype(ctx.out()) {
|
||||
template <typename FormatContext>
|
||||
auto format(Answer, FormatContext &ctx) -> decltype(ctx.out()) {
|
||||
return formatter<int>::format(42, ctx);
|
||||
}
|
||||
};
|
||||
@@ -1133,6 +1134,13 @@ TEST(FormatterTest, CustomFormat) {
|
||||
EXPECT_EQ("0042", format("{:04}", Answer()));
|
||||
}
|
||||
|
||||
TEST(FormatterTest, CustomFormatTo) {
|
||||
char buf[10] = {};
|
||||
auto end = fmt::format_to(buf, "{}", Answer());
|
||||
EXPECT_EQ(end, buf + 2);
|
||||
EXPECT_STREQ(buf, "42");
|
||||
}
|
||||
|
||||
TEST(FormatterTest, WideFormatString) {
|
||||
EXPECT_EQ(L"42", format(L"{}", 42));
|
||||
EXPECT_EQ(L"4.2", format(L"{}", 4.2));
|
||||
|
||||
Reference in New Issue
Block a user