| 2842 | } |
| 2843 | |
| 2844 | fastfloat_really_inline FASTFLOAT_CONSTEXPR20 |
| 2845 | void skip_zeros(const char*& first, const char* last) noexcept { |
| 2846 | uint64_t val; |
| 2847 | while (!cpp20_and_in_constexpr() && std::distance(first, last) >= 8) { |
| 2848 | ::memcpy(&val, first, sizeof(uint64_t)); |
| 2849 | if (val != 0x3030303030303030) { |
| 2850 | break; |
| 2851 | } |
| 2852 | first += 8; |
| 2853 | } |
| 2854 | while (first != last) { |
| 2855 | if (*first != '0') { |
| 2856 | break; |
| 2857 | } |
| 2858 | first++; |
| 2859 | } |
| 2860 | } |
| 2861 | |
| 2862 | // determine if any non-zero digits were truncated. |
| 2863 | // all characters must be valid digits. |
no test coverage detected