| 818 | |
| 819 | template <typename Char, typename Iterator, typename Sentinel> |
| 820 | inline bool string_parse( |
| 821 | Char const* uc_i, Char const* lc_i |
| 822 | , Iterator& first, Sentinel const& last) |
| 823 | { |
| 824 | Iterator i = first; |
| 825 | |
| 826 | common_type_equal eq; |
| 827 | |
| 828 | for (; *uc_i && *lc_i; ++uc_i, ++lc_i, ++i) |
| 829 | if (i == last || (!eq(*uc_i, *i) && !eq(*lc_i, *i))) |
| 830 | return false; |
| 831 | first = i; |
| 832 | return true; |
| 833 | } |
| 834 | |
| 835 | // Copied from |
| 836 | // boost/spirit/home/x3/numeric/real_policies.hpp |