@@ -47,6 +47,8 @@ TEST(ranges_test, format_array_of_literals) {
47
47
}
48
48
#endif // FMT_RANGES_TEST_ENABLE_C_STYLE_ARRAY
49
49
50
+ struct unformattable {};
51
+
50
52
TEST (ranges_test, format_vector) {
51
53
auto v = std::vector<int >{1 , 2 , 3 , 5 , 7 , 11 };
52
54
EXPECT_EQ (fmt::format (" {}" , v), " [1, 2, 3, 5, 7, 11]" );
@@ -65,6 +67,9 @@ TEST(ranges_test, format_vector) {
65
67
EXPECT_EQ (fmt::format (" {:n}" , vvc), " ['a', 'b', 'c'], ['a', 'b', 'c']" );
66
68
EXPECT_EQ (fmt::format (" {:n:n}" , vvc), " 'a', 'b', 'c', 'a', 'b', 'c'" );
67
69
EXPECT_EQ (fmt::format (" {:n:n:}" , vvc), " a, b, c, a, b, c" );
70
+
71
+ EXPECT_FALSE (fmt::is_formattable<unformattable>::value);
72
+ EXPECT_FALSE (fmt::is_formattable<std::vector<unformattable>>::value);
68
73
}
69
74
70
75
TEST (ranges_test, format_nested_vector) {
@@ -83,6 +88,8 @@ TEST(ranges_test, format_map) {
83
88
auto m = std::map<std::string, int >{{" one" , 1 }, {" two" , 2 }};
84
89
EXPECT_EQ (fmt::format (" {}" , m), " {\" one\" : 1, \" two\" : 2}" );
85
90
EXPECT_EQ (fmt::format (" {:n}" , m), " \" one\" : 1, \" two\" : 2" );
91
+
92
+ EXPECT_FALSE ((fmt::is_formattable<std::map<int , unformattable>>::value));
86
93
}
87
94
88
95
struct test_map_value {};
@@ -146,6 +153,7 @@ template <typename T> class flat_set {
146
153
TEST (ranges_test, format_flat_set) {
147
154
EXPECT_EQ (fmt::format (" {}" , flat_set<std::string>{" one" , " two" }),
148
155
" {\" one\" , \" two\" }" );
156
+ EXPECT_FALSE (fmt::is_formattable<flat_set<unformattable>>::value);
149
157
}
150
158
151
159
namespace adl {
@@ -169,8 +177,6 @@ TEST(ranges_test, format_pair) {
169
177
EXPECT_EQ (fmt::format (" {:n}" , p), " 421.5" );
170
178
}
171
179
172
- struct unformattable {};
173
-
174
180
TEST (ranges_test, format_tuple) {
175
181
auto t =
176
182
std::tuple<int , float , std::string, char >(42 , 1 .5f , " this is tuple" , ' i' );
@@ -180,7 +186,6 @@ TEST(ranges_test, format_tuple) {
180
186
EXPECT_EQ (fmt::format (" {}" , std::tuple<>()), " ()" );
181
187
182
188
EXPECT_TRUE ((fmt::is_formattable<std::tuple<>>::value));
183
- EXPECT_FALSE ((fmt::is_formattable<unformattable>::value));
184
189
EXPECT_FALSE ((fmt::is_formattable<std::tuple<unformattable>>::value));
185
190
EXPECT_FALSE ((fmt::is_formattable<std::tuple<unformattable, int >>::value));
186
191
EXPECT_FALSE ((fmt::is_formattable<std::tuple<int , unformattable>>::value));
@@ -655,6 +660,8 @@ TEST(ranges_test, container_adaptor) {
655
660
m.push (2 );
656
661
EXPECT_EQ (fmt::format (" {}" , m), " [1, 2]" );
657
662
}
663
+
664
+ EXPECT_FALSE (fmt::is_formattable<std::stack<unformattable>>::value);
658
665
}
659
666
660
667
struct tieable {
0 commit comments