| 61 | } |
| 62 | |
| 63 | inline std::size_t find_invalid(std::string_view s) |
| 64 | { |
| 65 | std::string_view::const_iterator invalid = find_invalid(s.begin(), s.end()); |
| 66 | return (invalid == s.end()) ? std::string_view::npos : static_cast<std::size_t>(invalid - s.begin()); |
| 67 | } |
| 68 | |
| 69 | inline bool is_valid(std::string_view s) |
| 70 | { |