4
我正在嘗試編寫一個解析器(作爲第一步,當然它將被擴展很多)解析一個double並通過將該double傳遞給工廠來創建我的類ExpressionTree的一個對象我班的方法。 這是我第一次嘗試Boost Spirit佔位符類型轉換
struct operands : qi::grammar<string::iterator, ExpressionTree()>
{
operands() : operands::base_type(start)
{
start = qi::double_[qi::_val = ExpressionTree::number(qi::_1)];
}
qi::rule<string::iterator, ExpressionTree()> start;
};
這並不編譯(can't convert from boost::spirit::_1_type to double
),因爲(如果我理解正確)qi::_1
是不是雙,但只計算爲一個雙。
我試圖以任何方式使用boost::bind(&ExpressionTree::number, _1)
,但我不知道我怎麼那麼能得到賦予屬性_val
的結果,我將不勝感激,如果任何人都可以在正確的方向指向我。
作品完美,感謝 – DanielAbele 2013-05-17 07:43:58