| 89 | } |
| 90 | |
| 91 | inline std::size_t find_invalid(const std::u8string& s) |
| 92 | { |
| 93 | std::u8string::const_iterator invalid = find_invalid(s.begin(), s.end()); |
| 94 | return (invalid == s.end()) ? std::string_view::npos : static_cast<std::size_t>(invalid - s.begin()); |
| 95 | } |
| 96 | |
| 97 | inline bool is_valid(const std::u8string& s) |
| 98 | { |