Я пытаюсь добавить «двойной» для примера буст-компилятора:
http://www.boost.org/doc/libs/1_47_0/libs/spirit/example/qi/compiler_tutorial/calc8/
Я не могу добавить «double_type» к правилу:
qi::rule<Iterator, ast::operand(), ascii::space_type> unary_expr, primary_expr;
qi::double_type double_;
primary_expr = uint_ | double_ | identifier | bool_ | '(' > expr > ')';
Поскольку код VS2k13 получаю ошибку:
ошибка C2668: ‘boost :: detail :: option :: make_initializer_node :: apply :: initializer_node :: initialize’: неоднозначный вызов перегруженной функции …
Я также пытаюсь добавить long_type, например, и это тоже не работает, но другие типы, такие как hex_type, работают нормально.
Так я не могу иметь несколько числовых типов в одном правиле?
Задача ещё не решена.
Других решений пока нет …