是否有可能推导出Spirit X3语法的(预期)属性的类型?

时间:2016-09-20 03:34:53

标签: boost attributes grammar boost-spirit boost-spirit-x3

我有这个典型的灵魂代码。

#include <boost/spirit/home/x3.hpp>
#include <boost/fusion/container/vector.hpp>
#include<iostream>
using std::cout;

int main(){

    namespace x3 = boost::spirit::x3;
    boost::fusion::vector<double, double> p;
    x3::phrase_parse(
        s.begin(), s.end(), 
        x3::double_ >> x3::double_, x3::space, 
        p
    );
    assert( boost::fusion::at_c<0>(p) == 1.2 );
    assert( boost::fusion::at_c<1>(p) == 3.4 );
}

我想知道是否可以从语法中推断出预期属性的类型?

这样的东西
using att_type = decltype(x3::double_ >> x3::double_)::result_type;

推断boost::fusion::vector<double, double>

我发现了这个http://boost-spirit.com/home/2010/01/31/what-is-the-attribute-type-exposed-by-a-parser/,但它不能与x3一起使用,或者我没有包含正确的标题。

0 个答案:

没有答案