2

ドットが設定されているかどうかに応じて、double または int のいずれかを含む可能性のある文字列を解析する方法。たとえば、6.0 は double 型で、6 は int 型です。ルールは

rule<it,boost::variant<int,double>,skipper> r = qi::double_|qi::int_;

ただし、この場合、ストリームはすべての数値に対して double で供給されます。

4

2 に答える 2

4

interjay によって提供された実用的なアプローチ1real_parser_policiesに加えて、以下をご覧ください。

real_parser<double,strict_real_policies<double>>() | int_

同様に良いでしょう。


1私は時々自分で使用します( SOでこれを行う答えを見つけることができるはずです)。ただし、入力が(たとえば int を解析し、解析されないままになる) 場合問題があることに注意してください。123e-5e-5

于 2013-07-01T07:01:48.547 に答える