Commit 81074c70 authored by Victor Zverovich's avatar Victor Zverovich

Fix more compilation errors on gcc 4.6

parent 1b452538
...@@ -1251,7 +1251,7 @@ struct formatter<Date> { ...@@ -1251,7 +1251,7 @@ struct formatter<Date> {
return it; return it;
} }
auto format(const Date &d, context &ctx) { auto format(const Date &d, context &ctx) -> decltype(ctx.begin()) {
format_to(ctx.begin(), "{}-{}-{}", d.year(), d.month(), d.day()); format_to(ctx.begin(), "{}-{}-{}", d.year(), d.month(), d.day());
return ctx.begin(); return ctx.begin();
} }
...@@ -1269,7 +1269,7 @@ class Answer {}; ...@@ -1269,7 +1269,7 @@ class Answer {};
namespace fmt { namespace fmt {
template <> template <>
struct formatter<Answer> : formatter<int> { struct formatter<Answer> : formatter<int> {
auto format(Answer, fmt::context &ctx) { auto format(Answer, fmt::context &ctx) -> decltype(ctx.begin()) {
return formatter<int>::format(42, ctx); return formatter<int>::format(42, ctx);
} }
}; };
...@@ -1527,6 +1527,12 @@ TEST(LiteralsTest, NamedArg) { ...@@ -1527,6 +1527,12 @@ TEST(LiteralsTest, NamedArg) {
fmt::arg(L"third", 99)), fmt::arg(L"third", 99)),
udl_a_w); udl_a_w);
} }
TEST(FormatTest, UdlTemplate) {
EXPECT_EQ("foo", "foo"_format());
EXPECT_EQ(" 42", "{0:10}"_format(42));
EXPECT_EQ("42", fmt::format(FMT_STRING("{}"), 42));
}
#endif // FMT_USE_USER_DEFINED_LITERALS #endif // FMT_USE_USER_DEFINED_LITERALS
enum TestEnum { A }; enum TestEnum { A };
...@@ -1594,7 +1600,7 @@ struct variant { ...@@ -1594,7 +1600,7 @@ struct variant {
namespace fmt { namespace fmt {
template <> template <>
struct formatter<variant> : dynamic_formatter<> { struct formatter<variant> : dynamic_formatter<> {
auto format(variant value, context& ctx) { auto format(variant value, context& ctx) -> decltype(ctx.begin()) {
if (value.type == variant::INT) if (value.type == variant::INT)
return dynamic_formatter::format(42, ctx); return dynamic_formatter::format(42, ctx);
return dynamic_formatter::format("foo", ctx); return dynamic_formatter::format("foo", ctx);
...@@ -1628,12 +1634,6 @@ TEST(FormatTest, DynamicFormatter) { ...@@ -1628,12 +1634,6 @@ TEST(FormatTest, DynamicFormatter) {
format_error, "precision not allowed for this argument type"); format_error, "precision not allowed for this argument type");
} }
TEST(FormatTest, UdlTemplate) {
EXPECT_EQ("foo", "foo"_format());
EXPECT_EQ(" 42", "{0:10}"_format(42));
EXPECT_EQ("42", fmt::format(FMT_STRING("{}"), 42));
}
TEST(FormatTest, ToString) { TEST(FormatTest, ToString) {
EXPECT_EQ("42", fmt::to_string(42)); EXPECT_EQ("42", fmt::to_string(42));
EXPECT_EQ("0x1234", fmt::to_string(reinterpret_cast<void*>(0x1234))); EXPECT_EQ("0x1234", fmt::to_string(reinterpret_cast<void*>(0x1234)));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment