joel falcou
You need to chaneg your gramamr so it match a pow_ tag and a terminal
Here is my function and the grammar struct INC_TAG { typedef double result_type; double operator()(double no) const { return 1.0+no; } }; template<typename Arg> typename proto::result_of::make_expr< proto::tag::function ,INC_TAG ,Arg
::type inc_(Arg const &arg) { return proto::make_exprproto::tag::function(INC_TAG(), arg); }
struct calculator_grammar
: proto::or_<
proto::plus< calculator_grammar, calculator_grammar >
, proto::minus< calculator_grammar, calculator_grammar >
, proto::multiplies< calculator_grammar, calculator_grammar >
, proto::divides< calculator_grammar, calculator_grammar >
, proto::function