28 lines
2.0 KiB
Markdown
28 lines
2.0 KiB
Markdown
[char.traits.specializations.char8.t]
|
|
|
|
# 27 Strings library [[strings]](./#strings)
|
|
|
|
## 27.2 Character traits [[char.traits]](char.traits#specializations.char8.t)
|
|
|
|
### 27.2.4 char_traits specializations [[char.traits.specializations]](char.traits.specializations#char8.t)
|
|
|
|
#### 27.2.4.3 struct char_traits<char8_t> [char.traits.specializations.char8.t]
|
|
|
|
[ð](#lib:char_traits)
|
|
|
|
namespace std {template<> struct char_traits<char8_t> {using char_type = char8_t; using int_type = unsigned int; using off_type = streamoff; using pos_type = u8streampos; using state_type = mbstate_t; using comparison_category = strong_ordering; static constexpr void assign(char_type& c1, const char_type& c2) noexcept; static constexpr bool eq(char_type c1, char_type c2) noexcept; static constexpr bool lt(char_type c1, char_type c2) noexcept; static constexpr int compare(const char_type* s1, const char_type* s2, size_t n); static constexpr size_t length(const char_type* s); static constexpr const char_type* find(const char_type* s, size_t n, const char_type& a); static constexpr char_type* move(char_type* s1, const char_type* s2, size_t n); static constexpr char_type* copy(char_type* s1, const char_type* s2, size_t n); static constexpr char_type* assign(char_type* s, size_t n, char_type a); static constexpr int_type not_eof(int_type c) noexcept; static constexpr char_type to_char_type(int_type c) noexcept; static constexpr int_type to_int_type(char_type c) noexcept; static constexpr bool eq_int_type(int_type c1, int_type c2) noexcept; static constexpr int_type eof() noexcept; };}
|
|
|
|
[1](#1)
|
|
|
|
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L359)
|
|
|
|
The two-argument members assign, eq, and lt are defined identically to
|
|
the built-in operators =, ==, and < respectively[.](#1.sentence-1)
|
|
|
|
[2](#2)
|
|
|
|
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L364)
|
|
|
|
The member eof() returns animplementation-defined constant
|
|
that cannot appear as a valid UTF-8 code unit[.](#2.sentence-1)
|