1 #ifndef INCLUDED_U5E_UTF8 2 #define INCLUDED_U5E_UTF8 7 #include <u5e/codepoint.hpp> 8 #include <u5e/encoding_assertion.hpp> 9 #include <u5e/utf8_iterator.hpp> 24 template <
typename NativeString>
26 utf8_iterator<
typename NativeString::iterator>;
32 template <
typename NativeString>
33 using const_iterator =
34 utf8_const_iterator<
typename NativeString::const_iterator>;
39 template <
typename NativeString>
43 it.rewind_to_start_of_codepoint(*(it.raw_iterator_));
44 return it.raw_iterator_;
47 template <
typename InputNativeIterator,
typename OutputNativeString>
48 static void append_from_utf32ne
49 (InputNativeIterator first, InputNativeIterator last,
50 OutputNativeString& output) {
51 while (first != last) {
58 output.append(o_begin.raw_iterator_, o_i.raw_iterator_);
proxyobject & operator=(const codepoint c)
utf8_iterator(const NativeIterator raw_iterator)
Native representation of a codepoint.
const iterator for utf8 encoded strings.
utf8_iterator & operator++()
Encoding type for UTF8 text. Unlike UTF16 and UTF32, UTF8 is endian independent.
static NativeString::const_iterator native_const_iterator(utf8_const_iterator< typename NativeString::const_iterator > it)