boost-spirit-qi – qi :: uint_parser()应该解析什么?
从测试中我可以得到qi :: uint_parser< int>()与qi :: uint_相同.它们解析从0到UINT_MAX的整数.
我不明白的是qi :: uint_parser要求std :: numeric_limits< T> :: max()对数字基类型T有效.我不确定我是否应该假设qi :: uint_parser< int> ;()应该解析从0到std :: numeric_limits< int> :: max()的整数而不是std :: numeric_limits< unsigned int> :: max().或者这个要求与解析器的范围无关? 解决方法
我认为这复制了
How to write a boost::spirit::qi parser to parse an integer range from 0 to std::numeric_limits<int>::max()?以及我记得在邮件列表上看到的问题.
由于它显然没有记录,你测试过吗?
我希望它是后者.我希望属性类型说明属性,而不是解析器.解析器解析,属性传播分配给属性.关注点分离. 属性传播可能会进行C语言的任何隐式转换.这实际上与在scanf(“%d”)中使用unsigned或使用std :: istream读取unsigned int没有什么不同: 我希望这一切都是真的,因为C结合了语言的核心价值 >只为您需要的东西付费 事实上,这是问题的根源:Spirit定义了qi :: int_,qi :: uint_和朋友.如果你使用底层的qi :: [u] int_parser<>来拼凑自定义组合模板,你告诉编译器“我知道我在做什么”. 免责声明:所有这些都是非权威性的.我甚至没有检查代码/文档.我认为这本质上是一个文档问题,在mailing list更好 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |