Reintroduce ostream support to range formatters (#2014)
This commit is contained in:
parent
38c7def47a
commit
a036cc97b7
@ -341,7 +341,10 @@ struct formatter<
|
|||||||
enable_if_t<fmt::is_range<T, Char>::value
|
enable_if_t<fmt::is_range<T, Char>::value
|
||||||
// Workaround a bug in MSVC 2017 and earlier.
|
// Workaround a bug in MSVC 2017 and earlier.
|
||||||
#if !FMT_MSC_VER || FMT_MSC_VER >= 1927
|
#if !FMT_MSC_VER || FMT_MSC_VER >= 1927
|
||||||
&& has_formatter<detail::value_type<T>, format_context>::value
|
&&
|
||||||
|
(has_formatter<detail::value_type<T>, format_context>::value ||
|
||||||
|
detail::has_fallback_formatter<detail::value_type<T>,
|
||||||
|
format_context>::value)
|
||||||
#endif
|
#endif
|
||||||
>> {
|
>> {
|
||||||
formatting_range<Char> formatting;
|
formatting_range<Char> formatting;
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
//
|
//
|
||||||
// For the license information refer to format.h.
|
// For the license information refer to format.h.
|
||||||
|
|
||||||
#define FMT_STRING_ALIAS 1
|
|
||||||
#include "fmt/format.h"
|
#include "fmt/format.h"
|
||||||
|
|
||||||
struct test {};
|
struct test {};
|
||||||
@ -24,6 +23,7 @@ template <> struct formatter<test> : formatter<int> {
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
#include "fmt/ostream.h"
|
#include "fmt/ostream.h"
|
||||||
|
#include "fmt/ranges.h"
|
||||||
#include "gmock.h"
|
#include "gmock.h"
|
||||||
#include "gtest-extra.h"
|
#include "gtest-extra.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
@ -324,3 +324,8 @@ TEST(OStreamTest, CompileTimeString) {
|
|||||||
TEST(OStreamTest, ToString) {
|
TEST(OStreamTest, ToString) {
|
||||||
EXPECT_EQ("ABC", fmt::to_string(fmt_test::ABC()));
|
EXPECT_EQ("ABC", fmt::to_string(fmt_test::ABC()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(OStreamTest, Range) {
|
||||||
|
auto strs = std::vector<TestString>{TestString("foo"), TestString("bar")};
|
||||||
|
EXPECT_EQ("{foo, bar}", format("{}", strs));
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user