* src/c++11/codecvt.cc (range): Add non-type template parameter and define oerloaded operators for reading and writing code units. (range<Elem, false>): Define partial specialization for accessing wide characters in potentially unaligned byte ranges. (ucs2_span(const char16_t*, const char16_t*, ...)) (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters to range<const char16_t, false> in order to avoid unaligned reads. (__codecvt_utf16_base<char16_t>::do_out) (__codecvt_utf16_base<char32_t>::do_out) (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for unaligned data to avoid unaligned writes. (__codecvt_utf16_base<char16_t>::do_in) (__codecvt_utf16_base<char32_t>::do_in) (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return error if there are unprocessable trailing bytes. (__codecvt_utf16_base<char16_t>::do_length) (__codecvt_utf16_base<char32_t>::do_length) (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type range<const char16_t, false> to span functions. * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test. From-SVN: r246245
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| classification | Loading commit data... | |
| codecvt | Loading commit data... | |
| codecvt_byname | Loading commit data... | |
| collate | Loading commit data... | |
| collate_byname | Loading commit data... | |
| conversions | Loading commit data... | |
| ctype | Loading commit data... | |
| ctype_base | Loading commit data... | |
| ctype_byname | Loading commit data... | |
| facet | Loading commit data... | |
| global_templates | Loading commit data... | |
| headers | Loading commit data... | |
| locale | Loading commit data... | |
| messages | Loading commit data... | |
| messages_byname | Loading commit data... | |
| money_get | Loading commit data... | |
| money_put | Loading commit data... | |
| moneypunct | Loading commit data... | |
| moneypunct_byname | Loading commit data... | |
| num_get | Loading commit data... | |
| num_put | Loading commit data... | |
| numpunct | Loading commit data... | |
| numpunct_byname | Loading commit data... | |
| time_get | Loading commit data... | |
| time_put | Loading commit data... |