시험에서 얻을 수있는 qi::uint_parser<int>()
은 qi::uint_
와 같습니다. 그들은 0
에서 UINT_MAX
까지 정수를 파싱합니다.qi :: uint_parser <int>()은 정확히 구문 분석해야합니까?
내가 이해할 수없는 점은 qi::uint_parser
은 숫자 유형에 대해 std::numeric_limits<T>::max()
이 유효해야한다는 것입니다. 은 0
에서 std::numeric_limits<int>::max()
이 아닌 정수를 구문 분석한다고 가정해야하는지 잘 모르겠습니다. std::numeric_limits<unsigned int>::max()
이 아닙니다. 아니면이 요구 사항은 파서의 범위와 관련이 없습니까?
[docs] (http://www.boost.org/doc/libs/1_62_0/libs/spirit/doc/)에서이 비트는 어떻게 될까? html/spirit/qi/reference/numeric/uint.html)? "모든 숫자 파서는 해당 uint_parser <>가 인스턴스화 된 유형 T를 기반으로 오버플로 조건을 확인합니다. 파싱 된 숫자가이 유형을 오버플로하면 구문 분석이 실패합니다. 오버플로 검사는 제공된 유형에 기반하지 않습니다 속성이지만 템플릿 매개 변수 T에만 의존합니다. " 내가 읽는 방식은 T가 구문 분석 할 범위에 영향을 미칠 것입니다. 내가 잘못 읽고 있니? –