增强:精神:气:加倍和增强:精神
boost::spirit::qi::double_ and boost::spirit::qi::int_
如何解析可能包含double或int的字符串,具体取决于是否设置了点。例如,6.0为double类型,6为int类型。规则是
rule<it,boost::variant<int,double>,skipper> r = qi::double_|qi::int_;
然而,在这种情况下,对于所有数字,流都将以双倍的方式馈送。
除了interjay给出的实用方法1外,还可以看看real_parser_policies
:
real_parser<double,strict_real_policies<double>>() | int_
同样好。
1,我有时会自己使用它(你应该能够在SO上找到这样做的答案)。然而,请注意,当输入为例如123e-5
(它将解析int,而不解析e-5
)时,会出现问题。
我认为这应该有效:
(int_ >> !lit('.')) | double_
只有在后面没有点的情况下,它才会匹配整数。否则,它将匹配一个替身。
相关文章:
- 增强精神解析器规则以检测语句中的特殊结尾
- 增强精神 X3:错误:在"..."中没有名为"大小"的类型
- 增强精神X3不编译
- 用枚举场和STL容器解析结构,并使用增强精神/融合轻松
- 使用增强精神 X3 解析特征矩阵
- 增强精神解析报价字符串失败
- 增强精神解析器:绕过贪婪的克莱恩*
- 增强精神:解析char_,随着局部变量值的变化
- 增强精神夺走关键字,而忽略船长
- 使用增强精神 X3 解析变体地图
- 节省增强精神递归匹配结果为C 结构
- 增强精神Qi-列表解析具有两个组件序列
- 增强精神语义动作
- 用增强精神完全解码HTTP标头值
- 增强精神,递归和堆栈溢出
- 增强精神 - 无法获得属性
- 使用增强精神提取未阐明的字符串和整数
- 我如何以增强精神实施const
- 增强精神2.5.2独立
- 以增强精神来定义用子份子参数的解析器