
I'm not sure if it's a good idea to go beyond the documented features. The more you do this, the more work you'll have to do in porting it to Phoenix-3. What is it you are trying to do?
thank you for the advise. What I am trying to do mixes boost.units with lambda/phoenix expressions I had a function that worked well with lambda and I am trying to make it work with phoenix. In a previous post I asked how to translate the argument, which is done, of the following function (called qawc) and now I am trying to translate the result type. template<class LambdaExp, class UnitIntegrandDomain> typename multiply_typeof_helper< \ typename divide_typeof_helper< \ quantity<typename LambdaExp::template sig<tuple<quantity<UnitIntegrandDomain> > >::type::unit_type>, \ quantity<UnitIntegrandDomain> \ >::type, \ quantity<UnitIntegrandDomain> \ >::type qawc( lambda_functor<lambda_functor_base< arithmetic_action<divide_action>, tuple< lambda_functor<// LambdaExp >,// lambda_functor<lambda_functor_base< arithmetic_action<minus_action>, tuple< lambda_functor< placeholder<1> >, quantity<UnitIntegrandDomain> const > > > > > > f_expr, boost::numeric::interval<quantity<UnitIntegrandDomain> > const& iv ){ typedef RET_TYPE ret_type; double const c = get<1>(get<1>(f_expr.args).args).value(); double ret = gsl::integration::qawc( bind( &LambdaExp::template sig<tuple<quantity<UnitIntegrandDomain> >
::type::value, get<0>(f_expr.args) (bind(&quantity<UnitIntegrandDomain>::from_value, _1)) ), boost::numeric::interval<double>( lower(iv).value() , upper(iv).value() ), c ); return ret_type::from_value(ret); }