我不明白的是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()?以及我记得在邮件列表上看到的问题.由于它显然没有记录,你测试过吗?
Or is this requirement has nothing to do with the parser’s range?
我希望它是后者.我希望属性类型说明属性,而不是解析器.解析器解析,属性传播分配给属性.关注点分离.
属性传播可能会进行C语言的任何隐式转换.这实际上与在scanf(“%d”)中使用unsigned或使用std :: istream读取unsigned int没有什么不同:
见How to read unsigned int variables from file correctly,using ifstream?
我希望这一切都是真的,因为C结合了语言的核心价值
>只为您需要的东西付费
>程序员知道他在做什么.
事实上,这是问题的根源:Spirit定义了qi :: int_,qi :: uint_和朋友.如果你使用底层的qi :: [u] int_parser<>来拼凑自定义组合模板,你告诉编译器“我知道我在做什么”.
免责声明:所有这些都是非权威性的.我甚至没有检查代码/文档.我认为这本质上是一个文档问题,在mailing list更好
总结以上是内存溢出为你收集整理的boost-spirit-qi – qi :: uint_parser()应该解析什么?全部内容,希望文章能够帮你解决boost-spirit-qi – qi :: uint_parser()应该解析什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)