Как разобрать строку, которая может содержать либо double, либо int в зависимости от того, установлена ли точка. Например. 6.0 имеет двойной тип, а 6 - тип int. Правило будетboost :: spirit :: qi :: double_ и boost :: spirit :: qi :: int_
rule<it,boost::variant<int,double>,skipper> r = qi::double_|qi::int_;
Однако поток будет подаваться двойным, как и для всех номеров в этом случае.
Связанный: ["Parse int or double using boost spirit"] (http://stackoverflow.com/q/13261502/2378523) – sehe