Deprecate u8string_view

This commit is contained in:
Victor Zverovich 2019-12-24 09:10:51 -08:00
parent 5390e29d42
commit dea7fde8b7
4 changed files with 11 additions and 28 deletions

View File

@ -1535,7 +1535,8 @@ inline void print(std::FILE* f, const S& format_str, Args&&... args) {
/**
\rst
Prints formatted data to ``stdout``.
Formats ``args`` according to specifications in ``format_str`` and writes the
output to ``stdout``.
**Example**::

View File

@ -559,8 +559,7 @@ class buffer_range : public internal::output_range<
: internal::output_range<iterator, T>(std::back_inserter(buf)) {}
};
// A UTF-8 string view.
class u8string_view : public basic_string_view<char8_t> {
class FMT_DEPRECATED u8string_view : public basic_string_view<char8_t> {
public:
u8string_view(const char* s)
: basic_string_view<char8_t>(reinterpret_cast<const char8_t*>(s)) {}
@ -571,8 +570,8 @@ class u8string_view : public basic_string_view<char8_t> {
#if FMT_USE_USER_DEFINED_LITERALS
inline namespace literals {
inline u8string_view operator"" _u(const char* s, std::size_t n) {
return {s, n};
inline basic_string_view<char8_t> operator"" _u(const char* s, std::size_t n) {
return {reinterpret_cast<const char8_t*>(s), n};
}
} // namespace literals
#endif

View File

@ -427,7 +427,11 @@ TEST(FormatTest, FormatErrorCode) {
}
TEST(FormatTest, CountCodePoints) {
EXPECT_EQ(4, fmt::internal::count_code_points(fmt::u8string_view("ёжик")));
#ifndef __cpp_char8_t
using fmt::char8_t;
#endif
EXPECT_EQ(4, fmt::internal::count_code_points(
fmt::basic_string_view<char8_t>(reinterpret_cast<const char8_t*>("ёжик"))));
}
// Tests fmt::internal::count_digits for integer type Int.

View File

@ -2467,27 +2467,10 @@ TEST(FormatTest, FmtStringInTemplate) {
using fmt::char8_t;
#endif
TEST(FormatTest, ConstructU8StringViewFromCString) {
fmt::u8string_view s("ab");
EXPECT_EQ(s.size(), 2u);
const char8_t* data = s.data();
EXPECT_EQ(data[0], 'a');
EXPECT_EQ(data[1], 'b');
}
TEST(FormatTest, ConstructU8StringViewFromDataAndSize) {
fmt::u8string_view s("foobar", 3);
EXPECT_EQ(s.size(), 3u);
const char8_t* data = s.data();
EXPECT_EQ(data[0], 'f');
EXPECT_EQ(data[1], 'o');
EXPECT_EQ(data[2], 'o');
}
#if FMT_USE_USER_DEFINED_LITERALS
TEST(FormatTest, U8StringViewLiteral) {
using namespace fmt::literals;
fmt::u8string_view s = "ab"_u;
fmt::basic_string_view<char8_t> s = "ab"_u;
EXPECT_EQ(s.size(), 2u);
const char8_t* data = s.data();
EXPECT_EQ(data[0], 'a');
@ -2496,10 +2479,6 @@ TEST(FormatTest, U8StringViewLiteral) {
}
#endif
TEST(FormatTest, FormatU8String) {
EXPECT_EQ(format(fmt::u8string_view("{}"), 42), fmt::u8string_view("42"));
}
TEST(FormatTest, EmphasisNonHeaderOnly) {
// Ensure this compiles even if FMT_HEADER_ONLY is not defined.
EXPECT_EQ(fmt::format(fmt::emphasis::bold, "bold error"),