diff --git a/ostd/string.hh b/ostd/string.hh index adf8200..3fe2b60 100644 --- a/ostd/string.hh +++ b/ostd/string.hh @@ -787,6 +787,15 @@ namespace utf { */ bool decode(wstring_range &r, char32_t &ret) noexcept; + template + bool decode(R &sink, basic_char_range &r) { + if (char32_t ch; utf::decode(r, ch)) { + sink.put(ch); + return true; + } + return false; + } + namespace detail { std::size_t u8_encode( char (&ret)[4], char32_t ch