So i may have missed something.
Here is the transform :
struct C_base
: bp::or_< bp::when< bp::terminal
>
, first_(bp::_)
>
, bp::when< bp::terminal, int()>
, bp::when< arithmetic_grammar, bp::_value()>
, bp::when< bp::unary_exprbp::_,C_base,C_base(bp::_child)>
, bp::when< bp::binary_expr
,
binary_result<arithmetic>(C_base(bp::_left),C_base(bp::_right) )
>
> {};
here is first_
struct first_ : bp::callable
{
template<class Sig> struct result;
template
struct result
{
typedef typename boost::remove_reference<Pair>::type::first_type type;
};
};
Now when I try to get the C_base of a terminal, i got :
erreur: no type named «proto_base_expr» in «struct std::pair
and other similar error.
What did I missed ?