| 7323 | struct char_set_parser |
| 7324 | { |
| 7325 | BOOST_PARSER_ALGO_CONSTEXPR char_set_parser() |
| 7326 | { |
| 7327 | auto const & chars = detail::char_set<Tag>::chars; |
| 7328 | auto const first = std::begin(chars); |
| 7329 | auto const last = std::end(chars); |
| 7330 | auto it = std::upper_bound(first, last, 0x100, [](auto x, auto y){ |
| 7331 | using common_t = std::common_type_t<decltype(x), decltype(x)>; |
| 7332 | return (common_t)x < (common_t)y; |
| 7333 | }); |
| 7334 | if (it != last) |
| 7335 | one_byte_offset_ = int(it - first); |
| 7336 | } |
| 7337 | |
| 7338 | template<typename T> |
| 7339 | using attribute_type = std::decay_t<T>; |