diff options
-rw-r--r-- | include/fmt/format.h | 14 | ||||
-rw-r--r-- | test/format-test.cc | 7 |
2 files changed, 7 insertions, 14 deletions
diff --git a/include/fmt/format.h b/include/fmt/format.h index b967afea..1a037b02 100644 --- a/include/fmt/format.h +++ b/include/fmt/format.h @@ -1145,8 +1145,8 @@ template <typename T = void> struct null {}; template <typename Char> struct fill_t { private: enum { max_size = 4 }; - Char data_[max_size]; - unsigned char size_; + Char data_[max_size] = {Char(' '), Char(0), Char(0), Char(0)}; + unsigned char size_ = 1; public: FMT_CONSTEXPR void operator=(basic_string_view<Char> s) { @@ -1166,13 +1166,6 @@ template <typename Char> struct fill_t { FMT_CONSTEXPR const Char& operator[](size_t index) const { return data_[index]; } - - static FMT_CONSTEXPR fill_t<Char> make() { - auto fill = fill_t<Char>(); - fill[0] = Char(' '); - fill.size_ = 1; - return fill; - } }; } // namespace detail @@ -1204,8 +1197,7 @@ template <typename Char> struct basic_format_specs { type(0), align(align::none), sign(sign::none), - alt(false), - fill(detail::fill_t<Char>::make()) {} + alt(false) {} }; using format_specs = basic_format_specs<char>; diff --git a/test/format-test.cc b/test/format-test.cc index 5626fa28..d3f21b47 100644 --- a/test/format-test.cc +++ b/test/format-test.cc @@ -2423,17 +2423,17 @@ TEST(FormatTest, CharTraitsIsNotAmbiguous) { #endif } +#if __cplusplus > 201103L struct custom_char { int value; custom_char() = default; - template <typename T> custom_char(T val) : value(static_cast<int>(val)) {} + template <typename T> + constexpr custom_char(T val) : value(static_cast<int>(val)) {} operator int() const { return value; } }; -int to_ascii(custom_char c) { return c; } - FMT_BEGIN_NAMESPACE template <> struct is_char<custom_char> : std::true_type {}; FMT_END_NAMESPACE @@ -2444,6 +2444,7 @@ TEST(FormatTest, FormatCustomChar) { EXPECT_EQ(result.size(), 1); EXPECT_EQ(result[0], custom_char('x')); } +#endif // Convert a char8_t string to std::string. Otherwise GTest will insist on // inserting `char8_t` NTBS into a `char` stream which is disabled by P1423. |