From testing I can get `qi::uint_parser<int>()` is the same as `qi::uint_`. They parse integers from `0` to `UINT_MAX`. 

What I don't understand is that `qi::uint_parser` requires `std::numeric_limits<T>::max()` to be valid for the numeric base type `T`. I'm not sure if I should assume `qi::uint_parser<int>()` should parse integers from `0` to `std::numeric_limits<int>::max()` not `std::numeric_limits<unsigned int>::max()`. Or is this requirement has nothing to do with the parser's range?