C++ 无法向boost::spirit中的规则添加双精度

C++ 无法向boost::spirit中的规则添加双精度,c++,boost,boost-spirit,rule,C++,Boost,Boost Spirit,Rule,我尝试为boost编译器示例添加“double”: 我无法在规则中添加“双_类型”: qi::rule<Iterator, ast::operand(), ascii::space_type> unary_expr, primary_expr; qi::double_type double_; primary_expr = uint_ | double_ | identifier | bool_ | '(' > expr > ')'; qi::规则一元表达式,主表达

我尝试为boost编译器示例添加“double”:

我无法在规则中添加“双_类型”:

qi::rule<Iterator, ast::operand(), ascii::space_type> unary_expr, primary_expr;
qi::double_type double_;

primary_expr = uint_ | double_ | identifier | bool_ | '(' > expr > ')';
qi::规则一元表达式,主表达式;
qi::双_型双_;
primary_expr=uint_124;double|identifier|bool_124;'(“>expr>”);
因为代码VS2k13出现错误:

错误C2668:“boost::detail::variant::make_initializer_node::apply::initializer_node::initialize”:对重载函数的调用不明确

例如,我还尝试添加long_类型,但这不起作用,但其他类型(如hex_类型)也可以


所以我不能在一条规则中有多个数字类型?

vs~thx u save my life:)