16 using char_type = hi::agrapheme;
17 using int_type = hi::agrapheme::value_type;
21 using comparison_category = std::strong_ordering;
23 static constexpr void assign(char_type& r, char_type
const& a)
noexcept
38 [[nodiscard]]
static constexpr bool eq(char_type a, char_type b)
noexcept
43 [[nodiscard]]
static constexpr bool lt(char_type a, char_type b)
noexcept
48 static constexpr char_type *
move(char_type *dst, char_type
const *src,
std::size_t count)
noexcept
59 dst[i - 1] = src[i - 1];
65 static constexpr char_type *
copy(char_type *dst, char_type
const *src,
std::size_t count)
noexcept
83 return s1[i] < s2[i] ? -1 : 1;
94 while (not s[i].empty()) {
100 static constexpr char_type
const *
find(
const char_type *p,
std::size_t count,
const char_type& ch)
noexcept
112 static constexpr char_type
to_char_type(int_type c)
noexcept
119 static constexpr int_type
to_int_type(char_type c)
noexcept
124 static constexpr bool eq_int_type(int_type c1, int_type c2)
noexcept
129 static constexpr int_type
eof()
noexcept
132 return 0x1f'ffffULL << 43;
135 static constexpr int_type
not_eof(int_type e)
noexcept
138 return e ==
eof() ? (0xfffdULL << 43) : e;
#define hi_axiom_not_null(expression,...)
Assert if an expression is not nullptr.
Definition assert.hpp:257