| 4202 | |
| 4203 | template <typename UC> |
| 4204 | fastfloat_really_inline FASTFLOAT_CONSTEXPR20 void |
| 4205 | skip_zeros(UC const *&first, UC const *last) noexcept { |
| 4206 | uint64_t val; |
| 4207 | while (!cpp20_and_in_constexpr() && |
| 4208 | std::distance(first, last) >= int_cmp_len<UC>()) { |
| 4209 | ::memcpy(&val, first, sizeof(uint64_t)); |
| 4210 | if (val != int_cmp_zeros<UC>()) { |
| 4211 | break; |
| 4212 | } |
| 4213 | first += int_cmp_len<UC>(); |
| 4214 | } |
| 4215 | while (first != last) { |
| 4216 | if (*first != UC('0')) { |
| 4217 | break; |
| 4218 | } |
| 4219 | first++; |
| 4220 | } |
| 4221 | } |
| 4222 | |
| 4223 | // determine if any non-zero digits were truncated. |
| 4224 | // all characters must be valid digits. |
no test coverage detected