【发布时间】:2010-06-27 16:06:39
【问题描述】:
我正在编写一个 Boost Spirit 语法来将文本解析为这些结构的向量:
struct Pair
{
double a;
double b;
};
BOOST_FUSION_ADAPT_STRUCT(
Pair,
(double, a)
(double, a)
)
这个语法有这样的规则:
qi::rule<Iterator, Pair()> pairSequence;
然而pairSequence的实际语法是这样的:
double_ % separator
我希望这个语法产生一个Pair,其中a 等于双精度,b 等于某个常数。我想做这样的事情:
pairSequence = double_[_val = Pair(_1, DEFAULT_B)] % separator;
当然,以上内容无法编译。我尝试将构造函数添加到 Pair,但仍然出现编译错误(没有匹配函数调用 'Pair::Pair(const boost::phoenix::actor >&, double)' )。
【问题讨论】:
标签: boost attributes boost-spirit boost-spirit-qi boost-phoenix