inline static bool call(Iterator& first, Iterator const& last, T& attr) { if (first == last) return false; typedef detail::extract_int< T, Radix, MinDigits, MaxDigits> extract_pos_type; typedef detail::extract_int< T, Radix, MinDigits, MaxDigits, detail::negative_accumulator<Radix> > extract_neg_type; Iterator save = first; bool hit = extract_sign(first, last); if (hit) hit = extract_neg_type::parse(first, last, attr); else hit = extract_pos_type::parse(first, last, attr); if (!hit) { first = save; return false; } return true; }
static bool parse_sign(Iterator& first, Iterator const& last) { return extract_sign(first, last); }